Xcode - 仅在ARCHIVE期间增加内部版本号?

时间:2012-03-24 21:53:46

标签: xcode macos xcode4 xcode4.2 osx-lion

我找到了一些其他帖子,展示了如何使用脚本添加脚本来增加内部版本号:

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。

3 个答案:

答案 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”:

enter image description here

按照这些说明操作两次, 将一个拖到开头,一个拖到最后 (一个在构建前运行,另一个在构建后运行):

# 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}"

请参阅https://gist.github.com/sekati/3172554

答案 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

设置新用户可见版本号。

请参阅full documentation for details