Apple的doc可能更清楚如何提交更新版本。
如标题中所述,
之间的区别是什么它们有任何关联吗?
答案 0 :(得分:131)
是的,它们是相关的。它们都是指您的应用程序的版本。
iTunes Connect
这是App Store中显示的版本号;这必须是纯1.2.3
捆绑版本(CFBundleVersion)
这不需要是纯版本号。这可以是12345
或1.2.3 (Build 12345AB)
。例如,这在Mac OS X应用程序的“关于”窗口中显示,通常更像是“版本号”而不是“版本号”。
捆绑版本字符串(CFBundleShortVersionString) 该值用作“真实”版本号。 必须与 iTunes Connect 中的版本使用的字符串相同。
<强>更新强>
正如@snlehton所指出的,当您想要将应用程序上传到(iOS)App Store时, CFBundleVersion 必须是纯1.2.3
版本号。
答案 1 :(得分:25)
是的,它们是相关的,但它们的定义取决于它们的使用方式。
始终必须是版本号,例如1.0
使用模式1 - 仅设置CFBundleVersion
必须是版本号,例如1.0。必须与iTunes Connect版本匹配。
使用模式2 - CFBundleVersion和CFBundleShortVersionString 已设置
必须是内部版本号,例如一个整数,如435163。
必须是版本号,例如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)
版本号是您需要提供的版本号。例如,2.1.1或3.1.2等。这也应该等于 CFBundleShortVersionString 。
Xcode中的捆绑版本( CFBundleVersion )仅代表构建编号,用于标识应用程序的迭代(已发布或未发布)。
捆绑版本字符串,简短( CFBundleShortVersionString )是一个由三个以点分隔的整数组成的数字。第一个代表应用程序的任何主要更新,例如实现新功能或主要更改的更新。第二个整数表示实现不太突出的功能的修订。第三个整数表示维护版本。
答案 3 :(得分:12)
小心 CFBundleVersion 。它不仅是生产版本号。 Apple在二进制上载过程中会检查此值,并且可能会失败。
在构建要提交的版本时,请确保将 CFBundleVersion 设置为 CFBundleShortVersionString 。
答案 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文件中来对此密钥进行本地化。