iTunes中的“版本号”与xcode中的“捆绑版本”,“捆绑版本string”有什么区别?
苹果的文档可能会更清楚如何提交更新版本。
正如标题所述,有什么区别
- iTunes中的版本号连接(在提交更新时必须提供)
- 在Xcode捆绑版本
- 捆绑版本string,简称
他们有任何关系吗?
是的,他们是相关的。 他们都提到你的应用程序的版本。
-
iTunes Connect
这是App Store中显示的版本号; 这必须是一个纯粹的版本号,如1.2.3
-
捆绑版本(CFBundleVersion)
这并不需要是纯粹的版本号。 这可以是像12345
或1.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文件中进行本地化。