iOS应用程序的版本/构建字段包括:
版本“
我的问题是:
在将新版本的应用程序上传到连接和/或发布到应用程序商店时,需要使用哪些版本/内部版本号来递增iTunes?
在应用更新之间,“版本”CFBundleShortVersionString
或“构建”CFBundleVersion
可以保持不变吗?
苹果源代码的额外积分或上传无效版本/内部版本号时iTunesConnect显示的确切错误消息。
Android / Google实演说明:
引发这个问题的讨论是,谷歌Play商店中的一个安卓应用程序的公共“版本”需要递增,并且根本没有经过验证。android:versionName
可以在不同版本、升级、降级之间保持不变,也可以是任意随机字符串,而不是看起来有效的“版本号”。
android:versionName
-一个字符串值,表示应向用户显示的应用程序代码的发布版本。
该值是一个字符串,因此您可以将应用程序版本描述为<major>.<minor>.<point>
字符串、或绝对或相对版本标识符的任何其他类型的。
Difference between versionName and versionNumber in Android
而android:versionCode
被强制为释放时递增的整数。
Apple文档
正如the newly accepted answer中指出的那样,苹果最近发布了一份技术说明,详细介绍了他们的版本和内部版本号方案:
Apple Technical Note TN2420 - Version Numbers and Build Numbers
发布于 2016-06-24 17:23:37
Apple Technical Note TN2420, Version Numbers and Build Numbers
摘要:
Version
,Build number
)必须是唯一的。
Version
(CFBundleShortVersionString)必须按升序排列,order.Build number
(CFBundleVersion)必须按升序排列。版本号和内部版本号检查表
以下是在向App Store提交新版本时可以检查的一些内容。确保您的版本号和内部版本号设置正确将有助于避免您的应用程序因配置不当而自动被拒绝。
中重复使用内部版本号
根据检查表,下面的(Version, Build Number)
序列也是有效的。
Build Number
。(注:不是 macOS应用程序)(1.0.0,1) -> (1.0.0,2) -> ... -> (1.0.0,11) -> (1.0.1,1) -> (1.0.1,2)
发布于 2014-01-15 07:03:04
连接应与您提供的iTunes CFBundleShortVersionString
版本号相匹配。它也是用户在App Store中查看您的应用程序时显示的版本号。
连接的版本号显示在存储中,并且该版本应与您稍后在iTunes
中输入的版本号相匹配。
CFBundleVersion
不会显示在应用程序商店中,但由iTunes用来确定应用程序的更新时间。
如果您更新构建字符串,如“设置版本号和构建字符串”中所述,iTunes会识别到构建字符串发生了更改,并正确地将新的iOS应用商店包同步到测试设备。
更具体地回答你的问题...
将新版本的应用上载到应用商店时,需要递增哪些版本/内部版本号?
两者都有。一个显示在App Store中,另一个由iTunes用来更新应用程序。
CFBundleShortVersionString或CFBundleVersion可以在应用程序更新之间保持不变吗?
不是的。(元问题,这里的用例是什么?如果您以任何方式编辑了有效负载,构建将会有所不同,并且用户会想要了解它)。如果您尝试,您将看到如下所示的错误消息:
,还是将它们与之前的相应数字进行比较,以确保新版本的应用程序上传的数字更大?
是。使用semver.org标准。
CFBundleShortVersionString和CFBundleVersion的数字是否以任何方式相互比较?
不是的。
发布于 2014-12-17 17:10:50
CFBundleShortVersionString是版本的公共“名称”(例如:"2.5“或"3.8.1")。您必须在每个release处增加它。
CFBundleVersion是私有build编号。在AppStore上看不到它。您必须在每次upload时增加该值。这意味着如果你在二进制文件上线之前拒绝了它,并且你想上传一个新的二进制文件,它将具有相同的CFBundleShortVersionString,但必须有更高的CFBundleVersion (例如:公有"2.5",私有"2.5",然后二进制拒绝,并重新上传私有"2.5.1")
2016年11月16日编辑:
还使用了CFBundleVersion属性(以及代码中由User-Agent
发送的NSURLConnection标头中的)/!。
示例:如果CFBundleName为MyApp,CFBundleVersion为2.21,则代码使用NSURLConnection直接发送的任何编程MyApp查询都将嵌入头部:
User-Agent: MyApp/2.21 CFNetwork/... Darwin/...
(这不适用于UIWebView自动发出的请求)。
https://stackoverflow.com/questions/21125159
复制相似问题