我一直在使用shell脚本作为我的Xcode构建过程的一部分来增加plist文件中的内部版本号,但是它使得Xcode 4.2.1经常崩溃(关于不属于项目的目标的错误;我猜更改plist文件会以某种方式混淆Xcode).
shell脚本执行此操作,以便只有agvtool当文件比plist文件更新时才会增加构建号(因此只是构建时没有增加值):
if [ -n \"`find ProjDir -newer ProjDir/Project-Info.plist`\" ]; then agvtool -noscm next-version -all; else echo \"Version not incremented\"; fi
Run Code Online (Sandbox Code Playgroud)
有没有办法增加不破坏Xcode 的构建号(在plist文件中,或其他任何地方)?
最后编辑:我现在使用python脚本来做这种事情,我刚刚在github上公开了.它没有很好的记录,但不应该很难解决.作为奖励,此repo还包含一个有用的脚本,可自动将第三方库捆绑到应用程序包中.
在Xcode Run脚本Build Phase中有一个"仅在安装时运行脚本"选项,我无法找到相关文档.它有什么作用?
我在这个网站上找到了很多解决方案和脚本,但增加Xcode中的内部版本号的最简单的解决方案是:
转到TARGETS部分中的Build Phases并添加Run Script Build Phase:

将Shell更改为/ bin/bash并插入以下脚本:
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
Run Code Online (Sandbox Code Playgroud)
玩得开心!:)