Xcode 添加 script 自动更新 Build

每次打包经常会遇到忘记修改 bulid 导致上传失败,又不得不重新打包上传,极其浪费时间。
xcode 的 Build Phases 的run script 可以添加脚本,来自动更新build的值

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
git=`sh /etc/profile; which git`
appBuild=`"$git" rev-list --all |wc -l`

if [ $CONFIGURATION = "Debug" ]; then
branchName=`"$git" rev-parse --abbrev-ref HEAD`
branchShort=`"$git" rev-parse --abbrev-short HEAD`
/usr/libexec/PlistBuddy -c "Set :BranchName $branchName" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
/usr/libexec/PlistBuddy -c "Set :BranchShort $branchShort" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
/usr/libexec/PlistBuddy -c "Set :APPBuildNum $appBuild" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
else
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $appBuild" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
fi
echo "Updated ${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"

其中 BranchNameBranchShortAPPBuildNumCFBundleVersion,前三个需要在info.plist 新增字段
也可以根据需求自定义其他字段。
这里根据 debug 和 release 做了区分。
DEBUG: 可以拿到 分支名字、 分支commitID、build次数
RELEASE:可以拿到build 次数

ps:目前,在多target版本还有点问题,在最初的target里没有问题,但是在copy出来的其他target暂时无法运行


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!