iOS应用程序的版本/构建字段包括:
>
“version”CFBundleShortVersionString(String-IOS,OS X)指定绑定的发行版本号,它标识应用程序的已发行迭代。发行版本号是一个字符串,由三个以句点分隔的整数组成。
“build”CFBundleVersion(String-IOS,OS X)指定包的生成版本号,该版本号标识包的迭代(已发布或未发布)。生成版本号应该是由三个非负的、以句点分隔的整数组成的字符串,其中第一个整数大于零。字符串只能包含数字(0-9)和句点(.)人物。前导零从每个整数中截断,并且将被忽略(也就是说,1.02.3相当于1.2.3)。此键不可本地化。
“iTunes Connect版本号”:在iTunes Connect上创建新版本应用程序时指定的版本号。
我的问题是:
当应用程序的新版本上载到iTunes Connect和/或发布到应用程序商店时,需要增加哪个版本/内部版本号?
“Version”CFBundleShortVersionString
或“Build”CFBundleVersion
是否可以在应用程序更新期间保持不变?
Apple源代码或iTunesConnect在上载无效版本号/内部版本号时显示的确切错误信息加分。
引发这个问题的讨论是,Google Play商店中的Android应用程序的公开“版本”不需要增加,也没有任何验证。android:versionname
可以在发布、升级、降级之间保持不变,或者是任何随机字符串,而不是看起来是有效的“版本号”。
android:versionname
-一个字符串值,表示应用程序代码的发行版本,因为它应该显示给用户。
该值是一个字符串,以便您可以将应用程序版本描述为
字符串,或任何其他类型的绝对或相对版本标识符。
Android中versionName和versionNumber之间的差异
而android:versioncode
则被强制为一个发布时递增的整数。
正如新接受的答案中所指出的,苹果最近公布了一份技术说明,详细说明了他们的版本和内部版本号方案:
Apple技术说明TN2420-版本号和内部版本号
Apple技术说明TN2420,版本号和内部版本号
版本
和内部版本号
)必须唯一。
在向App Store提交新构建时,您可以检查以下一些内容。确保正确设置了版本号和内部版本号将有助于避免应用程序因配置不当而被自动拒绝。
根据检查表,以下(版本,内部版本号)
序列也是有效的。
>
案例:在不同的发布序列中重用内部版本号
。(注:不是macOS app)
(1.0.0,1)->(1.0.0,2)->...->(1.0.0,11)->(1.0.1,1)->(1.0.1,2)