我试图弄清楚如何在我的Xcode 4项目中自动增加Bundle版本号(对于ad-hoc和发布版本).我发现一些在线脚本声称可以做到这一点,但我不确定是否将它们放在"预执行"或"后动作"中.我也不确定我应该在plist中放置什么价值; 一个数字,然后脚本将更改或变量?
到目前为止我尝试的所有选项似乎都没有用,所以任何帮助都会受到高度赞赏.
以下是我尝试使用的最新脚本:
conf=${CONFIGURATION}
arch=${ARCHS:0:4}
# Only increase the build number on Device and AdHoc/AppStore build
if [ $conf != "Debug" ] && [ $conf != "Release" ] && [ $arch != "i386" ]
then
buildPlist=${INFOPLIST_FILE}
buildVersion=$(/usr/libexec/PlistBuddy -c "Print CFBuildVersion" $buildPlist)
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBuildNumber" $buildPlist)
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBuildNumber $buildNumber" $buildPlist
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildVersion.$buildNumber" $buildPlist
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $buildVersion.$buildNumber" $buildPlist
fi
Run Code Online (Sandbox Code Playgroud) 在构建/存档之前,我需要调整项目的构建和版本号.
我尝试了很多东西,但到目前为止无济于事.
我添加了一个带脚本的目标来更新数字,并将其作为第一个依赖项添加到我的主目标.但是因为我有多个依赖项,因为我在我的应用程序中有扩展并且所有依赖项都是由Xcode并行执行的(或者至少是随机顺序),这不起作用.
我为我的方案添加了一个预先行动,结果相同.在继续构建之前,Xcode没有等待我的预操作完成(我添加了一个睡眠100来测试).
由于我正在改变构建号,因此脚本在开始其他任何操作之前就可以完成,但是还有一个副作用:构建甚至因为plist文件在构建相关文件时被更改而停止目标.
让我更难的是,我想用它agvtools来设置我的版本和内部版本号.这显然会启动我无法控制的后台进程以更改plist.
免责声明:我搜索了其他答案,没有帮助.