自己写的shell,build中使用beta来表明测试包,如果直接为数字,则为正式包,可以根据build中是否有beta前缀来自动匹配测试包、正式包。【备注:为了方便测试,if中的Release可以改为Debug;】
步骤一:targets的build中,如果要打测试版本,请在前面添加beta前缀,如果要打正式版本,请不要使用beta前缀;
步骤二:点开Build Phases选项,点击“+”按钮,添加Run Script,然后添加如下代码,如图:
script中用了一点shell语法,可自行百度查看相关语法。
具体的代码为:
if [ Release == $CONFIGURATION ]
then
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
strB="beta"
if [[ $buildNumber =~ $strB ]]
then
buildNumber=$strB$((${buildNumber:4} + 1))
else
buildNumber=$(($buildNumber + 1))
fi
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
echo "build number increase"
fi