iTunes中的“版本号”与xcode中的“捆绑版本”,“捆绑版本string”有什么区别?

苹果的文档可能会更清楚如何提交更新版本。

正如标题所述,有什么区别

  1. iTunes中的版本号连接(在提交更新时必须提供)
  2. 在Xcode捆绑版本
  3. 捆绑版本string,简称

他们有任何关系吗?

是的,他们是相关的。 他们都提到你的应用程序的版本。

  • iTunes Connect
    这是App Store中显示的版本号; 这必须是一个纯粹的版本号,如1.2.3

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

  • 捆绑版本string(CFBundleShortVersionString)此值用作“真实”版本号。 这必须iTunes Connect中的版本所使用的string相同。

更新:
正如@snlehton所指出的那样,当你想把你的应用程序上传到(iOS)App Store时, CFBundleVersion必须是一个纯粹的版本号,比如1.2.3

是的,他们是相关的,但他们的定义取决于他们如何使用。

  • iTunes连接版本

    总是必须是一个版本号,例如1.0

使用模式1 – 仅设置CFBundleVersion

  • 捆绑版本(CFBundleVersion)

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

使用模式2 – 设置CFBundleVersion和CFBundleShortVersionString

  • 捆绑版本(CFBundleVersion)

    必须是内部版本号,例如435163之类的单个整数。

  • 捆绑短版本string(CFBundleShortVersionString)

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

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

 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,否则将有风险无法使用在将来某些版本号,因为它不可能增加它们。

注意CFBundleVersion 。 这不仅是一个生产编号。 在二进制上传过程中,Apple检查此值,可能会使其失败。

确保在构build要提交的版本时,将CFBundleVersion设置为CFBundleShortVersionString的值。

看到这个职位关于它

是的,他们都有关系。

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

捆绑版本Xcode中的捆绑版本CFBundleVersion )仅代表识别应用程序迭代(释放或未释放)的编号。

Bundle版本string,简称CFBundleShortVersionString )是由三个由点分隔的整数组成的数字。 第一个代表应用程序的任何主要更新,例如实现新function或重大更改的更新。 第二个整数表示实现不太突出的特性的修订。 第三个整数表示维护版本。

接受的答案是要走的路 – 只是join这个例子。

对于我们的最后一个版本,“捆绑版本string,简称”是必需的,我继续与捆绑版本号(1.2.8为我们的应用程序)相匹配。

然后,我启用了Testflight,并使得我们的内部testing人员可以使用待审查的Apple版本(1.2.8)。 然而,一个testing者发现了一个需要修复的问题,我们删除了这个二进制文件。 当上传一个新的版本,我们得到一个错误,指出版本已经上传。

在阅读了一些SO链接和苹果文档后,我的理解是,使捆绑版本:1.2.8.001,同时保持捆绑版本,就是简化版本。 如果需要新版本,我们将bundle-version增加到1.2.8.002。

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

这个链接接受的答案包含很好的细节:: 在App Store发布后,哪些iOS应用版本/内部版本号必须增加?

从苹果文档

CFBundleVersion (捆绑版本)

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

CFBundleShortVersionString (捆绑版本string,简称)

CFBundleShortVersionString(String – iOS,OS X)指定包的版本号,它标识应用程序的已发布迭代。 发行版本号是由三个以句点分隔的整数组成的string。 第一个整数表示应用程序的主要修订,例如实现新function或重大更改的修订。 第二个整数表示实现不太突出的特性的修订。 第三个整数表示维护版本。

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