trevordevore / levure

Application development framework for LiveCode
MIT License
32 stars 14 forks source link

app.yaml "name" not assigned to Android standalone #69

Closed jim1001 closed 7 years ago

jim1001 commented 7 years ago

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

trevordevore commented 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?

macMikey commented 7 years ago

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.

jim1001 commented 7 years ago

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.

macMikey commented 7 years ago

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.

trevordevore commented 7 years ago

@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.

jim1001 commented 7 years ago

@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.

spencerlearning commented 7 years ago

To sum up, when packaging the application build the name is taken from the IDE Standalone Settings as follows:

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:

  1. 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.

  2. 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?

trevordevore commented 7 years ago

@spencerlearning - that is correct.

jim1001 commented 7 years ago

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

trevordevore commented 7 years ago

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

trevordevore commented 7 years ago

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.