Closed jim1001 closed 7 years ago
I though the name
in app.yml
was being applied to the standalone builder settings but it isn't. macOS and Windows have the version information updated before building a standalone. It needs to be added for iOS and Android.
Do we think the name
should be applied to the executable name in the Standalone Settings? As I think about it I'm inclined to think it should not be as display name != executable name in all cases.
We might be able to use the name
property for the Android Label and the iOS Display Name. I'm a little hesitant to go down that route, however. There are lots of standalone settings, why are some settings changed in app.yml
but not others? The version
I'm willing to special case given how often it changes. The other info in the standalone builder is pretty static, however.
Thoughts @spencerlearning and @macMikey?
I'm inclined to go the other way and say it should be applied. Either KISS or add another property to the app.yml file that is optional.
It would certainly be very useful to be able to identify the specific Levure build of an Android standalone app when installed on the target device.
Does the Levure profile + version + build provide a unique identifier? (where version & build are picked up from app.yaml)
Currently the Android standalone when installed on the target device picks up its name and version from the “Label” and “Version Name” fields respectively of the LC Standalone Application Settings which means it can’t be traced back to a specific Levure build.
Jim, Have you tried using levureAppGet? With that, you can pull any of the settings from your app.yml file. I pull the "version", "releaseDate", and "build" settings. Since I control all of those, the uniqueness of any of them is completely up to me.
@jim1001 I am going to update the Levure packager to update the version/build fields from Levure. This is already happening for desktop builds, just not mobile.
I'm also going to add a feature to helpers that allows them to update standalone settings before building a standalone. That will allow anyone to customize the settings to their hearts content.
@macMikey
I pull the "version", "releaseDate", and "build" settings.
Ah, I see - then you can display them wherever you want in your app. Maybe in an "About" section. Very useful. Thanks! I now also see there is a levureBuildProfile function.
Trevor - thanks for your continual enhancements.
To sum up, when packaging the application build the name is taken from the IDE Standalone Settings as follows:
Windows, MacOS: The executable/bundle name is from General > Standalone Name.
iOS: The name displayed under the application icon is from iOS > Display Name.
Android: The name displayed under the application icon is from Android > Label.
The name
setting in app.yml
is not used in packaging the application build. It is an optional setting that does not override any of the IDE Standalone Settings. You might use it to define a name you will use in your application's About section (retrieving it with levureAppGet
). You might also think of it as a title or heading for the app.yml
.
There are only two cases where the app.yml
settings override the IDE Standalone Settings:
The version
and build
numbers should override standalone settings on all platforms. This allows you to update version and build in one place (the app.yml
) instead of having to go into standalone settings and update each platform pane.
Right now Levure is not updating version
and build
on iOS and Android. However that will change soon.
The copy files
settings in app.yml
override Copy Files in IDE Standalone Settings. You should not use the Copy Files pane at all, the only panes used in the IDE settings are General, Inclusions, and the platforms.
Is this correct?
@spencerlearning - that is correct.
Android: The name displayed under the application icon is from Android > Label.
That's what I see. I’ve also observed that the .apk is created as [General > Standalone name].apk
I created a branch that sets the version name
and version code
for android. I propose that version name
be set to version
in the app.yml
file and version code
be set to build
in app.yml
. According to the android docs versionCode
is an integer that continually increments. This is how build
is used in Levure.
I've updated the docs to describe behavior and I've added links to Android docs:
https://github.com/trevordevore/levure/wiki/packager#version-information
If you update to the latest Levure (0.9.2) then version information is included for iOS and Android.
As for the original issue of not setting the name, that will not be addressed at this time. The name is used for display purposes.
When building an Android standalone the app name is taken from the Standalone Application Settings in the LiveCode IDE rather than the name specified at the top of app.yaml