使用CFBundleVersion比较提交的应用程序的不同版本是否正确

时间:2014-01-08 19:33:24

标签: ios xcode app-store

根据接受的答案的第3点: CFBundleVersion in the Info.plist Upload Error

  

Apple应该比较“CFBundleVersion”(即“Bundle   version“not the”Bundle versions string,short“)

然而在这篇帖子中: Difference between Xcode version (CFBundleShortVersionString) and build (CFBundleVersion)

它说版本映射到CFBundleShortVersionString,构建映射到CFBundleVersion

因此,这意味着当您向应用商店提交新版本的应用时,正在对构建进行比较,而不是您在XCode摘要页面中看到的版本。

这对我来说似乎是错误的 - 特别是考虑到Apple文档的引用:

  

CFBundleShortVersionString表示发布版本,而   CFBundleVersion代表任何版本,无论是否发布。

这意味着在提交新版本的应用时,您需要关注内部版本号,而不是版本号,这对我来说似乎很奇怪。它更奇怪,因为根据这个: What's the difference between "version number" in itunes connect, "bundle version", "bundle version string" in xcode?

CFBundleShortVersionString必须与iTunesConnect中的相同。那么为什么Apple检查CFBundleVersion而不是CFBundleVersionShortVersionString?

我已经提交了一个版本和版本都是1.0的应用程序,现在我想提交一个新版本并且已经碰到了1.0.1,这会在提交时引起任何问题吗?

1 个答案:

答案 0 :(得分:1)

来自用户的报告似乎不一致。此外,SO答案已超过2年。

Apple的App Distribution Guide中有关“配置应用”的部分说明了这一点:

  

设置版本号和构建字符串

     

版本号是一个两个周期分隔的正整数列表,如4.5.2所示。首先   整数表示主要修订,第二个表示次要修订,和   第三个维护版本。版本号显示在   存储和该版本应与您稍后输入的版本号相匹配   在iTunes Connect中。有关可能值的详细信息,请参阅   信息属性列表键中的“CFBundleShortVersionString”   参考

     

构建字符串表示迭代(已发布或未发布)   捆绑,可以包含字符和数字的混合,如   12E123。对于Mac应用程序,用户可以单击中的版本号   关于在版本号和构建之间切换的窗口   串。有关可能值的详细信息,请参阅中的“CFBundleVersion”   信息财产清单重点参考。

     

对于iOS应用,请在分发新内容时更新构建字符串   构建您的应用程序以进行测试。 iTunes将认识到构建   字符串已更改并正确同步新的iOS App Store Package   设备。有关如何配置应用程序以进行测试,请阅读“Beta测试”   你的iOS应用程序。“

这表明对于App Store而言重要的是CFBundleShortVersionString,它应该与iTunes connect中的值匹配。在区分用于测试的构建时,会考虑对CFBundleVersion的更改。

然而,这与“Information Property List Key Reference”关于CFBundleVersion的说法有些矛盾

  

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

这不是Apple的文档第一次或最后一次与信息相矛盾。

就个人而言,我会使用“应用程序分发指南”指南,但是为这两个值设置相同的版本号似乎符合这两个文档,所以你应该没问题。

对于我的Mac OSX应用程序,我使用CFBundleShortVersionString中的虚线版本和CFBundleVersion中运行的整数(对应于我的SCM版本号)。多年来提交类似的更新,从未出现过问题