Effacer les filtres
Effacer les filtres

How to access app details and write app version number into a file?

61 vues (au cours des 30 derniers jours)
Martti Ilvesmäki
Martti Ilvesmäki le 28 Juin 2021
Commenté : Han Geerligs le 28 Mai 2024 à 13:19
I'm trying out functionalities of Appdesigner in order to see it can handle specifications of app I'm designing.
I want my app to include possibility for writing an info file which contains version number of the app. I noticed this is located in Appdesigner in "App details".
My question is, how to access this information in order to write it into a file using a button in the app?
  2 commentaires
Mili Goyal
Mili Goyal le 28 Juin 2021
I think this MATLAB answer is very similar to what you have asked.
Do check this out!
Martti Ilvesmäki
Martti Ilvesmäki le 29 Juin 2021
Thank you, I checked it out. The answer of the question is a MATLAB technical support team provided function which, if I understood correctly, works for shared apps with app installer.
I would like to however, access this information from the app itself if possible. For example, by clicking button "write info file" which would write a .txt or .csv file containing information about the app and the version number.

Connectez-vous pour commenter.

Réponse acceptée

Kishan Dhakan
Kishan Dhakan le 30 Juin 2021
You can use the property app.<your app name>UIFigure.Name to acess the app name and write it to csv or txt using MATLAB functions in the button callback. For example, in your component browser, look for the first component under your app name, it should be the UIFigure. Use app.<thatComponent>.Name to access app name (and similar for other details like version).
  2 commentaires
Martti Ilvesmäki
Martti Ilvesmäki le 5 Juil 2021
Thank you, this works as a workaround. For example by using app.UIFigure.Tag for version number. Still though couldn't directly access App Details version number.

Connectez-vous pour commenter.

Plus de réponses (1)

Brian le 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
fullpath=mfilename('fullpath'); % Get run path
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
ver='debug'; % This may be redundant with below. Left in to prevent errors just in case...
else % If run from MATLAB mlapp file
  2 commentaires
Francisco Sacchetti
Francisco Sacchetti le 19 Jan 2024
this does not work for webbapp server
Han Geerligs
Han Geerligs le 22 Mai 2024 à 11:45
Does anyone know how to retrieve the version of an .mlapp file?
This property is available on top level of the GUI, in picture below it is 1.02. I'd like to display it in a text label.

Connectez-vous pour commenter.


En savoir plus sur Develop Apps Using App Designer dans Help Center et File Exchange




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by