我们都知道,想要自动版本号自增有两种方式:
1、使用 agvtool
脚本去自增
如: agvtool new-version -all 1.8
2、使用PlistBuddy
脚本去自增
如
# Release or Debug
if [ $CONFIGURATION == Release ]; then
echo "Bumping build number..."
buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}")
echo "Bumped build number befor to $buildnum"
if [[ "${buildnum}" == "" ]]; then
echo "No build number in $plist"
exit 2
fi
#使用bc才能计算小数
buildnum=$(echo "${buildnum}+0.1"|bc)
/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${INFOPLIST_FILE}"
echo "Bumped build number after to $buildnum"
else
echo $CONFIGURATION " build - Not bumping build number."
fi
但无论使用那种方法都需要写脚本。
我的需求:
需求起因:项目中的Target数量多,每次打包都需要手动修改版本号,较为繁琐,且费时间。
有两种方案可以处理我这个问题:
- 所有Target的版本号引用一个变量
这种方案在网上找了很久,一直没找到合适的方法。
按照我的理解,应该是要在Project -> Build Setting -> + -> User-Define Setting 变量,然后所有的版本号都引用这个变量。
我尝试添加一个BUILD_VERSION变量,然后在Plist文件中的Bundle Version中的值设置为${BUILD_VERSION},但仍然无法显示我设置但任何值
这样做其实是可以的,打包时是自己设置的值。
- 每次打包版本号都能自增(不太理想)
这个方案我通过添加脚本的方式去做,版本可以自增,但是出现了其他情况。
我在Build Phases 添加了如上的脚本后:
- 手动打包可自动增加版本号,并且修改plist文件的版本号。(不满足需求,手动打包太累)
- Bot 方式打包版本号增加了,但不能修改Plist文件。(我需要Bot打包)
到此我考虑,如果将脚本放在Bot中的Pre-Integration Scripts 可以吗?
抱歉,仍然不行,Bot 方式打包版本号增加了,但不能修改Plist文件。只如下图。
image.png
网友评论