企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
  # 让Xcode自动更新Build版本 我们每天都要打包给测试,每天都要改Build比较麻烦,幸运的是可以通过Shell脚本来省略这个过程。 在Xcode工程里选择对应的Target,在Build Phases里点击“New Run Script Phases”: ![](https://box.kancloud.cn/2016-01-18_569ca44a16f4d.jpg) 在下面的窗口中写入类似于如下脚本: ~~~ buildNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")   shortVersion=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")      buildNumber=`date +"%m%d"`   buildNumber="$shortVersion.$buildNumber"      /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"   ~~~ 前两行是将工程当前的Build、Version读取出来。 我的情况是基于Version加上日期以形成Build,如下: ![](https://box.kancloud.cn/2016-01-18_569ca44a2b8d8.jpg) 关于date的格式化,[传送门](http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/)。 如果Build是一个整形,可以这样做递增: ` buildNumber=$(($buildNumber + 1))  ` 如果要Build是类似于这样的字符串:1.0.0,可以用awf命令取值,参考:[http://stackoverflow.com/questions/9258344/better-way-of-incrementing-build-number](http://stackoverflow.com/questions/9258344/better-way-of-incrementing-build-number) 如果仅仅只想在Release(如Archive等)的时候更新Build,可以尝试加入判断: ~~~ if [ "${CONFIGURATION}" = "Release" ]; then      fi   ~~~