例如,如果我有一个版本为1.0的应用程序,它有30个版本(版本30已上传到App Store)。
当我发布版本1.0.1时,我应该将内部版本号擦除为1吗?或者它应该是31?
应该是1.0.1 (1)
还是1.0.1 (31)
?
谢谢
答案 0 :(得分:6)
从技术上讲,对于iOS应用程序,内部版本号可以从0(或1)开始。对于不允许的Mac应用程序。你应该这样做是另一个问题。
约定是在版本号更改后,内部版本号总是递增。
请参阅Apple对此的描述: https://developer.apple.com/library/content/technotes/tn2420/_index.html
答案 1 :(得分:3)
来自ios docs
对于您提交的每个新构建,您将需要发明一个新的构建号,其值大于您使用的最后一个构建号(对于同一版本)。对于iOS应用程序,您可以在提交不同版本时重复使用内部版本号。对于macOS应用程序,您必须为每个提交内容选择一个新的内部版本号,该内容是唯一的,之前从未在您提供给App Store的任何提交中使用过(包括以前版本的应用程序中使用的内部版本号)。
所以你可以使用1.0.1 (1)
或1.0.1(31)
但我真的更喜欢后来的一个。我不记得在开发过程中记住版本号,我们总是在团队中引用构建版本。我们的构建版本总是比以前的构建版本更大。
你可以问为什么我们这样做?答案是因为它看起来在逻辑上适合我们,并且android版本化也遵循同样的事情
versionCode - 用作内部版本号的整数。此数字仅用于确定一个版本是否比另一个版本更新,更高的数字表示更新的版本。这不是向用户显示的版本号;该号码由versionName设置设置,如下所示。 Android系统使用versionCode值来防止用户安装版本低于其设备上当前安装版本的APK。
答案 2 :(得分:1)
对于iOS应用版本,版本将包含1.2.3,1是主要版本,2是次要版本,3是错误修复。对于每个构建版本,我们可以从任何数字开始尽可能多的构建。根据版本标准,只要版本增加,构建版本总是增加,我们就会从1开始。
答案 3 :(得分:0)
正如其他人所说,您不应重置新版本的内部版本号。
我经常使用的方法是将脚本添加到目标的构建阶段。这样,构建号不断更新,无需人工干预。
在我的情况下,我将构建号基于Git提交的数量,但您可以改变它以满足您的需求。
REV=`git rev-list HEAD | wc -l`
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $REV" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"