Version number not shown correctly

When I build application with latest Corona Simulator (verision 2014.2511 (2014.11.18), version number is not shown correctly in XCode / Devices window.

I’ve set CFBundleShortVersionString to 1.3.0 in build.settings and same is done also in Build window in Corona simulator, but still Version number is now 2014.11.261352 or something similar.

With previous release there was not this issue, but version number was shown correctly.
 

Is there way to set version number to something or is Corona nowadays generating version number although users tries to set something different?

Thanks for the help.

I am seeing the same thing (using same build 2014.2511).  We should be able to override the automatic version number by setting CFBundleShortVersionString.  Ideally, it would just be whatever we put in the Version field in the Build dialog, or we could override by putting CFBundleShortVersionString in the build.settings.

Starting with a daily build some time after 2393, we started providing the CFBundleShortVersionString automatically and you no longer need to include it in your build.settings.  iTunes should use the version number you provide in the Corona SDK build dialog.

Rob

Hi Rob, the problem is that you set up your build number in iTunes Connect first, then you use Application Loader to submit.  The iTunes connect won’t associate the build you send with Application Loader unless the versions match.  Since you don’t know what build number Corona is going to automatically fill in, you can’t set it up properly ahead of time.

If corona is going to supply an automatic build number, it should be based off what the developer puts in the Version number field in the build dialog so that the build numbers match when submitting to iTunes Connect.

I hope this can be changed soon.  we need to be able to control our version numbers – i don’t know how this version number is used, but I should be at least able to override it if i feel I need to.

edited: removed statement about mismatch, added question about what it’s for and clarified we should be able to override anyway.

The build number you tell iTunes connect should match the Version # you put in the Corona SDK build dialog.  The number we put in the build.settings for you just needs to be a number greater than the last version uploaded so it will do its job.

Rob

It doesn’t seem to.

For example, I am putting 1.0.20141205 in the build dialog.

When I submit to iTunes, it shows me the build is 1.0.4 (2014.12.5.1021)

A couple of things:

  1. I specified CFBundleShortVersionString = “1.0.4” in my build.settings.  i assume that’s where it gets the number before the parenthesis.

  2. Regardless of what Corona chooses for the number, I think I should still have the choice to override it so that I can really screw things up if i want to :slight_smile:

Setting version number in Build dialog box does not work at least for me.

I do set version number as 1.4.0 in Build dialog box in Corona Simulator. When I do upload application to device using Xcode, version number shown in Xcode is 2014.12.061027. So clearly version number is generated from the time when the build happens and version number set in Dialog box is not used at all.

CFBundleShortVersionString was commented out from build.settings file.

With 2393 build version number is shown in Xcode correctly.

Let me try to restate this.

1.  Remove the CFBundleShortVersion string if you are using the daily build where we fixed this or later (2405 or so) or public build 2511.  Corona SDK will make up a CFBundleShortVersion string that meets Apples requirements and will be in a date/time format.

2.  In iTunes Connect provide it a version number like:   1.0,  1.4, 3.7 etc.  Don’t use more specific values.

3.  In the Corona SDK build screen, use the same value you told iTunes Connect your going to use.

Everything should work.

When Apple made this change, they require two version strings.  One is user facing.  That’s what you provide iTunes Connect and that’s what you put in the Corona SDK build dialog.  The other version string is similar to the idea behind Android’s Version code which is a number that has to be bigger than the last number submitted.  Since everytime you want to do a point release you would have to remember to increment that number, it’s just better to let Corona do it behind the scenes for you.

Rob

This is the part I am having the most trouble with.  Why don’t I (like I do on Android) have the ability to set this myself’

EDIT:

Okay, I followed your steps.  Once I removed the CFBundleShortVersionString from the build.settings, it is now using the build number specified in the build window instead of a Corona-generated build number.

EDIT 2:

Sorry, I was looking at the wrong version number when I claimed success.  I was looking at the version number that comes up when Application Loader pops up.  The internal version number I got after following your steps was 2014.12.60938.  So it appears I still do not have a way to set this version number myself.

EDIT 3:

After the binary finally arrived on the store, here is the result:

1.0.20141205 (2014.12.60938)

So, the external user-facing version is now correct.  The “internal” version is still set automatically by Corona.  Is there a way I can set the “internal” version myself, should I ever need to?

Thank you once again, Rob.

In theory you should be able to set the ShortBundle string and it would override what we set it too, but I’ve not tried it.

Rob

If you mean the CFBundleShortVersion, that seems to be setting the user-facing version number (overrides what is put in Version in build window).  See above where I set it to “1.0.4” in build.settings.

Just to Clarify:

CFBundleShortVersionString uses the Version field in the iOS Build window.  This is the key-value pair that needs to match what’s in iTunes Connection.

CFBundleVersion will default to yyyy.mm.ddtime to make it unique for each build.  If you wish to override this, this can be added to the build.settings, plist table to provide something different.

Rob

I am seeing the same thing (using same build 2014.2511).  We should be able to override the automatic version number by setting CFBundleShortVersionString.  Ideally, it would just be whatever we put in the Version field in the Build dialog, or we could override by putting CFBundleShortVersionString in the build.settings.

Starting with a daily build some time after 2393, we started providing the CFBundleShortVersionString automatically and you no longer need to include it in your build.settings.  iTunes should use the version number you provide in the Corona SDK build dialog.

Rob

Hi Rob, the problem is that you set up your build number in iTunes Connect first, then you use Application Loader to submit.  The iTunes connect won’t associate the build you send with Application Loader unless the versions match.  Since you don’t know what build number Corona is going to automatically fill in, you can’t set it up properly ahead of time.

If corona is going to supply an automatic build number, it should be based off what the developer puts in the Version number field in the build dialog so that the build numbers match when submitting to iTunes Connect.

I hope this can be changed soon.  we need to be able to control our version numbers – i don’t know how this version number is used, but I should be at least able to override it if i feel I need to.

edited: removed statement about mismatch, added question about what it’s for and clarified we should be able to override anyway.

The build number you tell iTunes connect should match the Version # you put in the Corona SDK build dialog.  The number we put in the build.settings for you just needs to be a number greater than the last version uploaded so it will do its job.

Rob

It doesn’t seem to.

For example, I am putting 1.0.20141205 in the build dialog.

When I submit to iTunes, it shows me the build is 1.0.4 (2014.12.5.1021)

A couple of things:

  1. I specified CFBundleShortVersionString = “1.0.4” in my build.settings.  i assume that’s where it gets the number before the parenthesis.

  2. Regardless of what Corona chooses for the number, I think I should still have the choice to override it so that I can really screw things up if i want to :slight_smile:

Setting version number in Build dialog box does not work at least for me.

I do set version number as 1.4.0 in Build dialog box in Corona Simulator. When I do upload application to device using Xcode, version number shown in Xcode is 2014.12.061027. So clearly version number is generated from the time when the build happens and version number set in Dialog box is not used at all.

CFBundleShortVersionString was commented out from build.settings file.

With 2393 build version number is shown in Xcode correctly.

Let me try to restate this.

1.  Remove the CFBundleShortVersion string if you are using the daily build where we fixed this or later (2405 or so) or public build 2511.  Corona SDK will make up a CFBundleShortVersion string that meets Apples requirements and will be in a date/time format.

2.  In iTunes Connect provide it a version number like:   1.0,  1.4, 3.7 etc.  Don’t use more specific values.

3.  In the Corona SDK build screen, use the same value you told iTunes Connect your going to use.

Everything should work.

When Apple made this change, they require two version strings.  One is user facing.  That’s what you provide iTunes Connect and that’s what you put in the Corona SDK build dialog.  The other version string is similar to the idea behind Android’s Version code which is a number that has to be bigger than the last number submitted.  Since everytime you want to do a point release you would have to remember to increment that number, it’s just better to let Corona do it behind the scenes for you.

Rob

This is the part I am having the most trouble with.  Why don’t I (like I do on Android) have the ability to set this myself’

EDIT:

Okay, I followed your steps.  Once I removed the CFBundleShortVersionString from the build.settings, it is now using the build number specified in the build window instead of a Corona-generated build number.

EDIT 2:

Sorry, I was looking at the wrong version number when I claimed success.  I was looking at the version number that comes up when Application Loader pops up.  The internal version number I got after following your steps was 2014.12.60938.  So it appears I still do not have a way to set this version number myself.

EDIT 3:

After the binary finally arrived on the store, here is the result:

1.0.20141205 (2014.12.60938)

So, the external user-facing version is now correct.  The “internal” version is still set automatically by Corona.  Is there a way I can set the “internal” version myself, should I ever need to?

Thank you once again, Rob.