How to code the checking of the version of an App ?
    10 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Marc Servagent
      
 il 29 Lug 2020
  
    
    
    
    
    Commentato: Francisco Sacchetti
 il 19 Gen 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 Commenti
Risposta accettata
Più risposte (1)
  Brian
      
 il 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 Commenti
  Brian
      
 il 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).
Vedere anche
Categorie
				Scopri di più su Develop Apps Using App Designer in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!