我找到了一些其他帖子,展示了如何使用脚本添加脚本来增加内部版本号:
Better way of incrementing build number?
Xcode project's "Build number"
Can Xcode insert the version number into a library's filename when building?
但我想要做的只是在我使用ARCHIVE(前后)时增加内部版本号。
实施例: 如果当前内部版本号为21,那么当我选择Product>归档构建号将增加到22,它将完成构建和创建构建号为22的归档文件的过程,然后当它完成归档时,它会将构建号增加到23。
答案 0 :(得分:79)
添加以下脚本,如您发布的第一个链接中列出的示例,但是执行两次。一旦在构建的开始和结束时:
if [ $CONFIGURATION == Release ]; then
echo "Bumping build number..."
plist=${PROJECT_DIR}/${INFOPLIST_FILE}
# increment the build number (ie 115 to 116)
buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
if [[ "${buildnum}" == "" ]]; then
echo "No build number in $plist"
exit 2
fi
buildnum=$(expr $buildnum + 1)
/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"
echo "Bumped build number to $buildnum"
else
echo $CONFIGURATION " build - Not bumping build number."
fi
非常感谢您在问题中链接到的问题的作者,这些信息让我开始回答这个问题!
答案 1 :(得分:21)
这与@ Inafziger的答案非常相似,但是更简洁的代码集,还有一个额外的好处,就是使用XCode中的复选框而不是运行时变量来检查“Release”:
按照这些说明操作两次, 将一个拖到开头,一个拖到最后 (一个在构建前运行,另一个在构建后运行):
# xcode-build-bump.sh
# @desc Auto-increment the build number every time the project is run.
# @usage
# 1. Select: your Target in Xcode
# 2. Select: Build Phases Tab
# 3. Select: Add Build Phase -> Add Run Script
# 4. Paste code below in to new "Run Script" section
# 5. Drag the "Run Script" below "Link Binaries With Libraries"
# 6. Ensure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)
# 7. Check the checkbox "Run script only when installing"
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
答案 2 :(得分:7)
Xcode包含the command line tool agvtool
to increase version numbers。因此,您不必使用PListBuddy
手动完成所有操作。
xcrun agvtool next-version -all
增加您的内部版本号。
xcrun agvtool new-marketing-version 2.0
设置新用户可见版本号。