且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

其中iOS应用版本/内部版本号(S),必须在App Store的发布递增?

更新时间:2023-01-15 10:08:08

两个 CFBundleVersion CFBundleShortVersionString 必须发布一个新版本在App Store时递增。

此外,该字符串必须必须在iTunes Connect中指定的版本匹配之一。

其中iOS应用版本/内部版本号(S),必须在App Store的发布递增?

This问题包括在X code主办的验证器上面的截图拒绝验证的应用程序时, CFBundleVersion CFBundleShortVersionString 没有增加。


  • 这包是无效的。 key的值 CFBundleVersion [1.0]在Info.plist文件必须包含一个更高的版本比pviously上传的版本$ P $的[1.134]


  • 这包是无效的。 key的值 CFBundleShortVersionString [1.0]在Info.plist文件必须包含一个更高的版本比pviously上传的版本$ P $的[1.134]


验证器还抛出一个错误证明的一个字符串必须在iTunes Connect中创建的应用程序的版本匹配。


  • 版本不匹配。无论CFBundleVersion ['1.0'],也没有CFBundleShortVersionString ['1.0']在Info.plist中与应用程式集的版本在iTunes Connect ['1.4']。

The three version/build fields for an iOS app are:

  • "Version" CFBundleShortVersionString (String - iOS, OS X) specifies the release version number of the bundle, which identifies a released iteration of the app. The release version number is a string comprised of three period-separated integers.

  • "Build" CFBundleVersion (String - iOS, OS X) specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. The build version number should be a string comprised of three non-negative, period-separated integers with the first integer being greater than zero. The string should only contain numeric (0-9) and period (.) characters. Leading zeros are truncated from each integer and will be ignored (that is, 1.02.3 is equivalent to 1.2.3). This key is not localizable.

  • "iTunes Connect Version Number": version number you specify when creating a new version of the app on iTunes Connect.

My question is:

Which version/build numbers are required to be incremented when a new version of the app is uploaded to the App Store?

Can either CFBundleShortVersionString or CFBundleVersion remain the same between app updates?

Extra points for Apple sources or the exact error messages iTunesConnect displays upon uploading an invalid version/build number.


Android / Google Play Note:

The discussion prompting this question is that the public "version" of an Android app in the Google Play Store does not need to be incremented and is in no way validated. The android:versionName can remain the same between releases, upgrade, downgrade, or be any random string rather than something that appears to be a valid "version number".

android:versionName — A string value that represents the release version of the application code, as it should be shown to users.

The value is a string so that you can describe the application version as a <major>.<minor>.<point> string, or as any other type of absolute or relative version identifier.

Whereas the android:versionCode is enforced to be an incrementing-on-release integer.

Both CFBundleVersion and CFBundleShortVersionString MUST be incremented when releasing a new version to the App Store.

Additionally, one of the strings must must match the version specified in iTunes Connect.

This question includes the above screenshot of the Xcode Organizer's Validator refusing to validate the app when the CFBundleVersion and CFBundleShortVersionString have not been incremented.

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

  • This bundle is invalid. The value for key CFBundleShortVersionString [1.0] in the Info.plist file must contain a higher version than that of the previously uploaded version [1.134].

The validator also throws an error proving that one of the strings must match the version of the app created on iTunes Connect.

  • Version Mismatch. Neither CFBundleVersion ['1.0'] nor CFBundleShortVersionString ['1.0'] in the Info.plist match the version of the app set in iTunes Connect ['1.4'].