iTunes Connect内部版本号重置

时间:2014-09-04 18:04:12

标签: ios xcode itunes

Itunes需要增加版本号(CFBundleShortVersionString)内部版本号(CFBundleVersion)才能对应用进行更新。 我的问题是,当我增加版本号时,是否会重置Bundle版本值? 例如,如果我从当前商店的2.2.1版(Build Number 9.5)更新到版本2.3.0(Build Number 1.0),是否允许这样做?或者Build编号必须> = 9.6? Build号的约定是什么? 版本号和内部版本号之间是否存在这种关系?跟踪上一版本中的旧Build版本对我来说没有意义。

2 个答案:

答案 0 :(得分:4)

在iOS中,您可以在更新版本号(CFBundleVersion)时重置内部版本号(CFBundleShortVersionString)。

这是在Xcode项目中需要做的事情。版本号或内部版本号永远不会自动重置

Apple Technical Note TN2420, Version Numbers and Build Numbers

的iOS:

  

对于iOS应用程序,构建编号在每个版本系列中必须是唯一的,但它们不需要在不同的版本系列中是唯一的。也就是说,对于iOS应用程序,如果您愿意,可以在不同的版本列表中再次使用相同的版本号

Mac OS:

  

但是,对于macOS应用程序,即使在不同版本中,内部版本号也必须单调增加。换句话说,对于macOS应用程序,您不能在不同的版本列表中再次使用相同的版本号

答案 1 :(得分:1)

构建号实际上对用户不可见,因此实际上并不重要。 Apple希望你增加它,所以只需在其中放一个更高的数字;)通常使用的内部编号是跟踪你所做的内部“编号”。很多人使用自动构建增量器,但更复杂的公司明确地管理它。

由于您似乎并不关心内部版本号,因此您只需使用自动脚本,就不要再查看它了。我用这个脚本:

#!/bin/sh
plist="$1"
dir="$(dirname "$plist")"
buildnum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion" "$plist")

IFS="."
save=""
out=""
for i in $buildnum
do 
out=$out$save
save="$i."
done
A=($save)
save=${A[0]}
save=`expr $save + 1`
save=$(printf "%05d" $save)
out=$out$save
IFS="ABVVVV"
buildnum=$out
/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "$plist"

将代码复制粘贴到文件系统中带有“.sh”扩展名的文件中,您永远不会删除它(或进入项目目录),然后转到xcode项目,在左侧选择项目名称(打开项目设置)单击构建目标,转到“构建阶段”。然后是“运行脚本”类型的新构建阶段

对于'Shell'插入/bin/sh 并在下面的代码行中插入

#/bin/sh
/Users/..PutThePathToTheScriptYouSavedAboveHere.sh "${PROJECT_DIR}/${INFOPLIST_FILE}"

我使用的是使用X.XX.XXXXX的构建版本,脚本只会增加最后一个数字。