tramlinehq/store-quirks

Build number is not unique

kitallis opened this issue · 1 comments

Build numbers are not unique. A combination of build number + version name, however is.

nid90 commented

Did some experiments on this for App Store. Here are the results.

TL;DR:

  • version name should always be greater than the last production release
  • version code and version name combination should be unique
  • version code does not have constraint on being higher than previous value

Here is more data on this:

Scenario: current release build - 1.48.0 (9201)
___________________

Test Case 1: same version name as production, increased build number
Upload a build to TF with these values:
versionName: 1.48.0
versionCode: 9201

Result:
[07:58:48]: The provided entity includes an attribute with a value that has already been used The bundle version must be higher than the previously uploaded version: ‘9201’. (ID: 25ce3149-2aa2-46b7-a1de-fb5e1f344d10) (-19232)
[07:58:48]: Could not download/upload from App Store Connect!
___________________

Test Case 2: increased version name from production, same build number as production
Upload a build to TF with these values:
versionName: 1.49.0
versionCode: 9201

Result:
Success
___________________

Test Case 3: same version name from production, increased build number from production
Upload a build to TF with these values:
versionName: 1.48.0
versionCode: 9202

Result:
[08:20:06]: ERROR: Asset validation failed (90186) Invalid Pre-Release Train. The train version '1.48.0' is closed for new build submissions (ID: 70a97821-fb9d-4396-971b-6cbf16c3bdbb)
[08:20:06]: ERROR: Asset validation failed (90062) This bundle is invalid. The value for key CFBundleShortVersionString [1.48.0] in the Info.plist file must contain a higher version than that of the previously approved version [1.48.0]. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring (ID: 7d08846f-ffbc-407a-9501-10ef6cf9855f)
[08:20:06]: Could not download/upload from App Store Connect!

___________________

Test Case 4: version name lower than production and previously unused
Upload a build to TF with these values:
versionName: 1.47.1
versionCode: 9201

Result:
[08:59:25]: ERROR: Asset validation failed (90062) This bundle is invalid. The value for key CFBundleShortVersionString [1.47.1] in the Info.plist file must contain a higher version than that of the previously approved version [1.48.0]. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring (ID: 1b140854-882e-412c-a971-2f663cb407cc)
[08:59:25]: Could not download/upload from App Store Connect!

___________________

Test Case 5: same version name as before (non-production), but different build number
Upload a build to TF with these values:
versionName: 1.49.0
versionCode: 9202

Result:
Success

___________________

Test Case 6: same version name as before (non-production), but different build number  -- full duplicate
Upload a build to TF with these values:
versionName: 1.49.0
versionCode: 9202

Result:
[09:21:44]: The provided entity includes an attribute with a value that has already been used The bundle version must be higher than the previously uploaded version: ‘9202’. (ID: ea5d137d-4c5e-48b0-9336-69988a64acf4) (-19232)
[09:21:44]: Could not download/upload from App Store Connect!

___________________

Test Case 7: ame version name as before (non-production), but lower build number than production
Upload a build to TF with these values:
versionName: 1.49.0
versionCode: 9190

Result:
Success