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

时间:2011-07-29 17:43:06

标签: objective-c xcode

App Target Summary

在Xcode 4中,我看到了我的目标摘要:

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

这两者有什么区别?我看到互联网上有很多人想要为两者提供相同的价值,我怀疑这是为了向后兼容。

我有两个问题:

1)如果我从头开始,对您的应用进行版本控制的最佳做法是什么?

2)在我的应用的所有先前版本中,我只使用了CFBundleVersion。为了不弄乱升级过程,我应该继续以{I}的方式继续增加CFBundleVersion,还是可以切换到“正确的方式”,假设存在一个?

4 个答案:

答案 0 :(得分:67)

Apple文档"Information Property List Key Reference"表示CFBundleShortVersionString代表发布版本,而CFBundleVersion代表任何版本,已发布或未发布。此外,CFBundleShortVersionString可以本地化,但我不知道你为什么要这样做,因为他们说它应该是“由三个周期分隔的整数组成的字符串”。对于发布版本,使两个数字相同是合理的。对于开发构建,您可能会在CFBundleVersion上添加其他内容,可能是另一个点和整数。

答案 1 :(得分:4)

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

答案 2 :(得分:1)

快速修复:

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

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

    {“CFBundleShortVersionString”=“1.1”;}

    1. 将1.1更改为新构建的任何内容。
    2. 构建&提交时不会再出现错误!
    3. enter image description here

答案 3 :(得分:0)

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

  

编号版本和版本:   iTunes Connect会提取其预发行版本号和内部版本号   从二进制文件。预发布版本号是Xcode版本   number,或Info.plist中的“Bundle version string,short”键。   内部版本号是Xcode内部版本号,或“捆绑版本”   Info.plist中的密钥。预发布版本号和内部版本号   将显示在“预发布”选项卡上,如“查看构建”中所述。

Uploading a Binary For An App