在开发过程中或者是在测试过程中会发现应用程序出现BUG并且修复了它,但是在更新版本的时候往往会使用了错误的build版本号,但又不想每次修改BUG后又要顾及build版本号的修改,于是就有了下面的方法可以简单的实现自动增加(修改)build版本号。
具体方法是:
Project->Targets->Build Phases-> New Run Script Phase,然后在脚本代码框中写入以下的脚本代码。
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $(PRODUCT_DIR)/Info.plist)
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" $(PRODUCT_DIR)/Info.plist
注意:上方的脚本代码中,总共是三行代码,其中第二行和第三行的代码之间有很大的坑在这里要重要说明一下,不然你无论怎么编译和运行程序,info.plist文件的CFBundleVersion的版本号都不会自动的增加。
解决的办法是:
在上述的第二行和第三行的代码中,是在英文状态下的空格再进行回车换行。
20171228 update
#! Auto Increment Version Script
#! 在Info.plist文件中自定义 CFBundleBuildDate 和 CFBundleBuildNumber
#! /bin/bash
infoPlist="${INFOPLIST_FILE}"
#! GET CFBundleBuildNumber value
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleBuildNumber" ${infoPlist})
#! CFBundleBuildNumber + 1
buildNumber=$((${buildNumber} + 1))
#! SET CFBundleBuildNumber on Info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundleBuildNumber ${buildNumber}" ${infoPlist}
#! GET CFBundleShortVersionString
shortVersion=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" ${infoPlist})
#! Composes the buildNumber as CFBundleVersion
buildNumber="${shortVersion}.${buildNumber}"
#! SET CFBundleVersion
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${buildNumber}" ${infoPlist}
#! GET date string
buildDate="$(date +%Y.%m.%d.%H:%M:%S)"
#! SET CFBundleBuildDate
/usr/libexec/PlistBuddy -c "Set :CFBundleBuildDate ${buildDate}" ${infoPlist}
update 2019.10.31
1.先添加一个 Run Script Phase, 复制内容```xcrun agvtool next-version -all```到内容区。
2.设置Curren Project Version为任意数字(建议大于0)
3.Versioning System 选择为 Apple Generic