Search code examples
macosversionapp-store-connect

TestFlight upload requires both CFBundleVersion and CFBundleShortVersionString to be incremented?


After launching v1.0 of an app I'm now looking at releasing the next version to TestFlight. However I'm receiving the following error but for macOS only:

This bundle is invalid. The value for key CFBundleVersion [2] in the Info.plist file must contain a higher version than that of the previously uploaded version [39]

This would make sense if I was trying to upload another 1.0 build, but I've incremented the CFBundleShortVersionString to 1.1. I assumed that updating this number would mean the build number resets to 1? (We're using Fastlane for automation which assumes the same).

Another thing that confuses me is that the iOS version that went from 1.0 (30) to 1.1 (1) was accepted.

<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>2</string>

Our previous was:

<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>39</string>

Do I really need to start my new version as 1.1 (40)?


Solution

  • OK I missed a crucial bit of information in the docs. For macOS the CFBundleVersion must be unique across all versions. So the AppStore won't accept the following:

    1.0 (39) > 1.1 (1) - While the CFBundleShortString has been incremented, the CFBundleVersion must also be incremented.

    iOS was accepted as the build number only needs to be unique for the current version.

    https://developer.apple.com/library/archive/technotes/tn2420/_index.html