Xcode版本(CFBundleShortVersionString)和build(CFBundleVersion)之间的区别

应用目标摘要

在Xcode 4中,我看到了我的目标总结:

“Version”input对应于info.plist文件中的CFBundleShortVersionString ,“Build”input对应于CFBundleVersion

这两者有什么区别? 我看到很多互联网上的人都希望把两者都置于同样的价值中,我怀疑是为了向后兼容。

我有两个问题:

1)如果我从头开始,版本化您的应用程序的最佳做法是什么?

2)在我的应用程序的所有以前的版本中,我只使用了CFBundleVersion 。 为了不搞乱升级过程,我应该继续像以前一样增加CFBundleVersion ,还是可以在假设存在的情况下切换到“正确的方式”?

Apple文档“Information Property List Key Reference”中提到CFBundleShortVersionString表示发布版本,而CFBundleVersion表示任何版本,是否发布。 而且, CFBundleShortVersionString可以被本地化,但我不知道为什么你想要,因为他们说它应该是“一个由三个以句点分隔的整数组成的string”。 对于发布版本,使两个数字相同是合理的。 对于一个开发版本,你可能会去别的CFBundleVersion ,也许另一个点和整数。

对于JWWalker的问题,你为什么要本地化CFBundleShortVersionString,这将是小数点分隔符。 例如在小数点分隔符实际上是逗号的语言环境中,版本“1.5”将是“1,5”。

快速解决:

只需将CFBundleShortVersionString添加到plist文件并编辑您的版本。

  1. 显示您的InfoPlist.strings
  2. 突出显示并粘贴下面的代码(假设它在源代码模式下)

{“CFBundleShortVersionString”=“1.1”;}

  1. 将1.1更改为新的版本。
  2. build立并提交没有更多的错误!

在这里输入图像说明

有关上传二进制文件的信息,请参阅Apple文档。

编号版本和版本:iTunes Connect从二进制文件中提取其预发行版本号和版本号。 预发布版本号是Xcode版本号,或Info.plist中的“Bundle version string short”键。 内部版本号是Xcode内部版本号,或Info.plist中的“Bundle版本”键。 预发行版本号和内部版本号将显示在预发行标签上,如查看版本中所述。

上传应用程序的二进制文件