iTunes Connect中的“版本号”,“捆绑版本”,Xcode中的“捆绑版本字符串”之间有什么区别?

时间:2011-09-02 08:43:24

标签: iphone version

Apple的doc可能更清楚如何提交更新版本。

如标题中所述,

之间的区别是什么
  1. itunes connect中的版本号(在提交更新时必须提供)
  2. xcode中的捆绑版本
  3. 捆绑版本字符串,简短
  4. 它们有任何关联吗?

6 个答案:

答案 0 :(得分:131)

是的,它们是相关的。它们都是指您的应用程序的版本。

  • iTunes Connect
    这是App Store中显示的版本号;这必须是纯1.2.3

  • 的版本号
  • 捆绑版本(CFBundleVersion)
    这不需要是纯版本号。这可以是123451.2.3 (Build 12345AB)。例如,这在Mac OS X应用程序的“关于”窗口中显示,通常更像是“版本号”而不是“版本号”。

  • 捆绑版本字符串(CFBundleShortVersionString) 该值用作“真实”版本号。 必须 iTunes Connect 中的版本使用的字符串相同。

<强>更新
正如@snlehton所指出的,当您想要将应用程序上传到(iOS)App Store时, CFBundleVersion 必须是纯1.2.3版本号。

答案 1 :(得分:25)

是的,它们是相关的,但它们的定义取决于它们的使用方式。

  • iTunes Connect版

    始终必须是版本号,例如1.0

使用模式1 - 仅设置CFBundleVersion

  • 捆绑版本(CFBundleVersion)

    必须是版本号,例如1.0。必须与iTunes Connect版本匹配。

使用模式2 - CFBundleVersion和CFBundleShortVersionString     已设置

  • 捆绑版本(CFBundleVersion)

    必须是内部版本号,例如一个整数,如435163。

  • Bundle Short Version String(CFBundleShortVersionString)

    必须是版本号,例如1.0。必须与iTunes Connect版本匹配。

使用模式2是最好的方法。以下是应用升级路径的一些示例数字:

CFBundleShortVersionString CFBundleVersion 
1.0                        1
1.0.1                      2
1.0.2                      3
1.2                        5  (build 4 was a beta and never released publicly)
1.2.1                      6

关于版本号的额外说明:如果您向应用程序提交次要更新(例如错误修复),则必须永远不会错过版本号中的句点,例如始终使用1.0.1且从不1.01或者您将将来可能无法使用某些版本号,因为无法增加它们。

答案 2 :(得分:12)

是的,他们都是相关的。

itunesconnect中的

版本号是您需要提供的版本号。例如,2.1.1或3.1.2等。这也应该等于 CFBundleShortVersionString

Xcode中的捆绑版本 CFBundleVersion )仅代表构建编号,用于标识应用程序的迭代(已发布或未发布)。

捆绑版本字符串,简短 CFBundleShortVersionString )是一个由三个以点分隔的整数组成的数字。第一个代表应用程序的任何主要更新,例如实现新功能或主要更改的更新。第二个整数表示实现不太突出的功能的修订。第三个整数表示维护版本。

答案 3 :(得分:12)

小心 CFBundleVersion 。它不仅是生产版本号。 Apple在二进制上载过程中会检查此值,并且可能会失败。

在构建要提交的版本时,请确保将 CFBundleVersion 设置为 CFBundleShortVersionString

请参阅this post about it

答案 4 :(得分:8)

接受的答案是要走的路 - 只需添加此作为示例。

对于我们的上一个版本,需要“Bundle Version String,short”,我继续将它与Bundle版本号(我们的应用程序为1.2.8)进行匹配。

然后我启用了Testflight,并使我们的内部测试人员可以使用Apple审核版(1.2.8)。然而,测试人员发现需要修复的问题,我们删除了二进制文件。上传新版本时,我们收到错误消息,指示已上载构建版本。

在阅读了几个SO链接和Apple文档后,我的理解是制作捆绑版本:1.2.8.001,同时保持bundle-version-short的方式。如果需要新的构建,我们将bundle-version增加到1.2.8.002。

注意:上传已被接受,并且该版本在预发布下显示为“1.2.8.001”。版本号仍为1.2.8。

答案 5 :(得分:2)

此链接的接受答案包含详细信息:: Which iOS app version/build number(s) MUST be incremented upon App Store release?

来自apple docs

CFBundleVersion (捆绑版)

CFBundleVersion(String - iOS,OS X)指定捆绑包的构建版本号,该版本号标识捆绑包的迭代(已发布或未发布)。构建版本号应该是由三个非负的,周期分隔的整数组成的字符串,第一个整数大于零。该字符串应仅包含数字(0-9)和句点(。)字符。前导零从每个整数中截断,将被忽略(即1.02.3相当于1.2.3)。此密钥不可本地化。

CFBundleShortVersionString (Bundle versions string,short)

CFBundleShortVersionString(String - iOS,OS X)指定捆绑包的发行版本号,该版本号标识应用程序的已发布迭代。发行版本号是由三个以句点分隔的整数组成的字符串。第一个整数表示对应用程序的主要修订,例如实现新功能或主要更改的修订。第二个整数表示实现不太突出的功能的修订。第三个整数表示维护版本。

此键的值与CFBundleVersion的值不同,后者标识应用程序的迭代(已释放或未释放)。可以通过将其包含在InfoPlist.strings文件中来对此密钥进行本地化。