Apple的文档在如何提交更新版本方面可能更加清晰。
如标题中所述,两者之间有什么区别
- iTunes Connect中的版本号(提交更新时必须提供)
- xcode中的捆绑版本
- 捆绑软件版本字符串,短
它们有任何关系吗?
Apple的文档在如何提交更新版本方面可能更加清晰。
如标题中所述,两者之间有什么区别
它们有任何关系吗?
Answers:
是的,它们是相关的。它们都引用您的应用程序的版本。
iTunes Connect
这是App Store中显示的版本号。这必须是一个纯版本号,例如1.2.3
捆绑软件版本(CFBundleVersion)
这不必是纯版本号。可以是12345
或1.2.3 (Build 12345AB)
。例如,这在Mac OS X应用程序的“关于”窗口中显示,通常更像是“内部版本号”而不是“版本号”。
捆绑软件版本字符串(CFBundleShortVersionString) 此值用作“实际”版本号。此字符串必须与iTunes Connect中的版本使用的字符串相同。
更新:
@snlehton指出,CFBundleVersion必须是纯版本号,就像1.2.3
您要将应用程序上载到(iOS)App Store时一样。
1.2.3
,然后为每个构建增加捆绑软件版本。
是的,它们是相关的,但是它们的定义取决于它们的使用方式。
始终必须是版本号,例如1.0
使用模式1-仅设置CFBundleVersion
必须是版本号,例如1.0。必须与iTunes Connect版本匹配。
使用模式2-设置CFBundleVersion和CFBundleShortVersionString
必须是内部版本号,例如像435163这样的单个整数。
必须是版本号,例如1.0。必须与iTunes Connect版本匹配。
使用模式2是最好的方法。以下是一些应用升级路径的示例编号:
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和NEVER 1.01,否则您将冒无法使用的风险。将来的某些版本号,因为将无法增加它们。
是的,它们都是相关的。
版本号在itunesconnect是您需要提供的版本号。例如,2.1.1或3.1.2等。这也应该等于CFBundleShortVersionString。
Xcode中的捆绑版本(CFBundleVersion)仅表示内部版本号,该内部版本号标识应用程序的迭代(已发布或未发布)。
捆绑版本字符串short(CFBundleShortVersionString)是一个数字,由三个以点分隔的整数组成。第一个代表应用程序的任何重大更新,例如实现新功能或重大更改的更新。第二个整数表示实现次要特征的修订。第三个整数表示维护版本。
注意CFBundleVersion。这不仅是生产版本号。Apple在二进制上传过程中检查了该值,并且可能使它失败。
要确保你设置CFBundleVersion与价值CFBundleShortVersionString当你建立你的释放的提交。
看到关于它的这篇文章
CFBundleVersion
不必匹配CFBundleShortVersionString
。例如,如果您查看Chrome的当前.ipa文件(现在在应用程序商店中),则其具有“ 34.0.1847.18” CFBundleVersion
和“ 34.1847.18” CFBundleShortVersionString
。
可接受的答案是解决之道-仅以示例为例。
对于我们的最新发行版,“ Bundle Version String,short”是必需的,我继续将其与Bundle版本号(对于我们的应用程序是1.2.8)进行匹配。
然后,我启用了Testflight,并使内部测试人员可以使用等待Apple审查的版本(1.2.8)。但是,测试人员发现了需要修复的问题,因此我们删除了二进制文件。上载新版本时,出现错误,表明该版本已经上传。
在阅读了一些SO链接和Apple文档之后,我的理解是制作了捆绑软件版本:1.2.8.001,同时保持了bundle-version-short的原样。如果需要新的版本,我们将bundle-version增至1.2.8.002。
注意:已接受上载,并且该版本在预发行版中显示为“ 1.2.8.001”。版本号仍为1.2.8。
该链接的可接受答案包含详细信息 :::在App Store发布后,必须增加哪个iOS应用版本/内部版本号?
来自苹果文档
CFBundleVersion(捆绑版)
CFBundleVersion(String-iOS,OS X)指定捆绑软件的内部版本号,该版本号标识捆绑软件的迭代(已发行或未发行)。内部版本号应该是由三个非负的,由句点分隔的整数组成的字符串,并且第一个整数大于零。该字符串应仅包含数字(0-9)和句点(。)字符。每个整数前导零将被截断,并且将被忽略(即1.02.3等于1.2.3)。该密钥不可本地化。
CFBundleShortVersionString(捆绑版本字符串,简称)
CFBundleShortVersionString(String-iOS,OS X)指定捆绑软件的发行版本号,该发行版标识应用程序的发行版本。发行版本号是一个由三个句点分隔的整数组成的字符串。第一个整数表示应用程序的主要修订,例如实现新功能或重大更改的修订。第二个整数表示实现次要特征的修订。第三个整数表示维护版本。
此键的值与CFBundleVersion的值不同,CFBundleVersion的值表示应用程序的迭代(已发布或未发布)。可以通过将其包含在InfoPlist.strings文件中来对其进行本地化。