How to code the checking of the version of an App ?
    14 views (last 30 days)
  
       Show older comments
    
    Marc Servagent
      
 on 29 Jul 2020
  
    
    
    
    
    Commented: Francisco Sacchetti
 on 19 Jan 2024
            Hello,
I made an App via AppDesigner. The App is shared via App Installer.
I woud like to code the following:
When the app is running, I would like to check the current version of the app, and check if more recent version of app exists.
How to code this ?
Many thanks
5 Comments
Accepted Answer
More Answers (1)
  Brian
      
 on 16 Nov 2021
        I developed the below yesterday and it has seemed to work so far.
function ver = CheckVersion(~)
    if isdeployed % If compiled and deployed
        [~, result] = system('path');
        p = char(regexpi(result, 'Path=(.*?);', 'tokens', 'once')); % Get run path
        myDir=dir(fullfile(p,'..','appdata','components')); % Move to components folder and get all files
        myDir=myDir(3:end); % Exclude '.' and '..'
        validFile=myDir(datetime({myDir.date})==max(datetime({myDir.date}))); % Only look at most recent install, includes 'common' and 'platform'
        appInfo=xml2struct(fullfile(validFile(1).folder,validFile(1).name)); % Import 'common' as struct from xml (requires xml2struct download)
        ver=appInfo.componentData.component.componentVersion.Text; % Grab the version number as a char array
    else
        fullpath=mfilename('fullpath'); % Get run path
        s=settings;
        if ~isempty(strfind(fullpath,s.matlab.addons.InstallationFolder.ActiveValue)) % If the run path includes the addons install folder, it is run from the app bar
            [p,~]=fileparts(fullpath); % Get the path
            if isfolder(fullfile(p,'resources'))
                xmlLocation=fullfile(p,'resources','addons_core.xml'); % Go to resources folder
                appInfo=xml2struct(xmlLocation); % Import addons_core.xml as struct
                ver=appInfo.addonCore.version.Text; % Grab the version number as a char array
            else
                ver='debug'; % This may be redundant with below. Left in to prevent errors just in case...
            end
        else % If run from MATLAB mlapp file
            ver='debug';
        end
    end
end
4 Comments
  Brian
      
 on 6 Apr 2022
				Check my comment above. It accesses the *.xml file that is created when you either compile the app into a *.exe or distribute it as an app for the app bar. From there it pulls the version number that was set in the App Details (or more specifically in the Share App window).
See Also
Categories
				Find more on Develop Apps Using App Designer in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




