仅在存档期间使用Xcode增量版本号?

仅在存档期间使用Xcode增量版本号?,xcode,macos,xcode4,xcode4.2,osx-lion,Xcode,Macos,Xcode4,Xcode4.2,Osx Lion,我还发现了一些其他帖子,展示了如何添加脚本以使用脚本增加构建编号: 但我想做的是,当我使用归档文件时(包括之前和之后),只增加构建数量 例如: 如果当前版本号为21,则当我选择“产品>存档”时,版本号将增加到22,它将以22的版本号完成构建和创建存档文件的过程,然后在完成存档后,将版本号增加到23。添加以下脚本,正如您发布的第一个链接中列出的示例,但请执行两次。一次在构建开始时,一次在构建结束时: if [ $CONFIGURATION == Release ]; then ech

我还发现了一些其他帖子,展示了如何添加脚本以使用脚本增加构建编号:

但我想做的是,当我使用归档文件时(包括之前和之后),只增加构建数量

例如:
如果当前版本号为21,则当我选择“产品>存档”时,版本号将增加到22,它将以22的版本号完成构建和创建存档文件的过程,然后在完成存档后,将版本号增加到23。

添加以下脚本,正如您发布的第一个链接中列出的示例,但请执行两次。一次在构建开始时,一次在构建结束时:

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

非常感谢您在问题中链接到的问题的作者提供的信息,让我开始了解这个答案

这与@Inafziger的答案非常相似,但更简洁的代码集,还有一个额外的好处,即“Release”的检查是通过XCode中的复选框而不是运行时变量完成的:

按照以下说明操作两次,将一个拖到开头,一个拖到结尾(一个在生成之前运行,一个在生成之后运行):

请参见Xcode includes。因此,您不必使用
PListBuddy
手动执行所有操作

xcrun agvtool下一版本-全部

增加你的建造数量

xcrun agvtool新营销版本2.0

设置新的用户可见版本号



请参阅。

您想在每次存档时向版本号添加两个吗?我想在存档前添加1,然后在存档后添加1。因此,在上面的示例中,存档本身的版本号为22。但我不想每次构建时都增加构建数量,只想在存档时增加。谢谢!我在制作自己的归档脚本时发现了这个问题,我喜欢你的“将构建数量增加两倍”的想法。最后我把它合并到我的(如果它对你有帮助的话,请随意复制)太棒了!谢谢工作完美。在Xcode 4.2中,您甚至不需要在某个目录中创建脚本,只需将其复制并粘贴到构建阶段部分即可。。在Xcode 4.2中,它需要是
==Release
而不是
==Archive
,这听起来可能很傻,但是。。为什么要加两次呢?这不会增加两倍吗?是的,这就是他想要的。:-)如果您只希望它碰撞一次,那么只添加一次。在Xcode 5中,如果[$CONFIGURATION==Release],您可以跳过
If[$CONFIGURATION==Release];然后
检查并将其添加到存档方案的后期操作中(项目>方案>编辑方案…)。我还成功地将此脚本添加到了上述@starkos建议的方案后期操作中。谢谢如果获取的
Print:Entry,“CbundLeverVersion”不存在,请删除路径的
${PROJECT\u DIR}/
部分。问题:为什么要执行两次?请参阅操作。它要求在执行之前和之后增加生成编号build@ccwasden增量版本号仅在存档之后,有什么方法可以在之前完成吗?我应该在构建之前还是之后添加此脚本?在之前。你希望新版本被包括在内。哇,令人惊讶的是,这没有更多的选票,这似乎是一个完美的答案。感谢@orkodenal虽然比@ccwasden的解决方案更干净,但这一解决方案使xcode在每次构建时重新加载xcodeproj并在左侧导航器中折叠分组(xcode 9.1 9B55)
# 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}"