mar*_*son 24 xcode build ios xcode4
我试图弄清楚如何在我的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)
TON*_*y.W 11
1,将CFBundleVersion设置为1.0.1或类似xxx

2,添加构建阶段以运行shell脚本autoVersion.sh

3,保存下面名为autoVersion.sh的脚本
#!/bin/sh
# Auto Increment Version Script
# set CFBundleVersion to 1.0.1 first!!!
# the perl regex splits out the last part of a build number (ie: 1.1.1) and increments it by one
# if you have a build number that is more than 3 components, add a '\.\d+' into the first part of the regex.
buildPlist=${INFOPLIST_FILE}
newVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$buildPlist" | /usr/bin/perl -pe 's/(\d+\.\d+\.)(\d+)/$1.($2+1)/eg'`
#echo $newVersion;
/usr/libexec/PListBuddy -c "Set :CFBundleVersion $newVersion" "$buildPlist"
Run Code Online (Sandbox Code Playgroud)
4,运行shell:cp autoVersion.sh~/Documents /和chmod 777~/Documents/autoVersion.sh
5,建立并享受它.:)
perl代码来自:https://gist.github.com/1436598
Can*_*pus 10
您可能会发现以下帖子有用:
Jeff LaMarche在iPhone开发中通过Xcode自动增加发布版本的内部版本号 http://iphonedevelopment.blogspot.com/2011/07/auto-incrementing-build-numbers-for.html
我发现使用分层 xcconfigs 可以解决这个问题。
使用应用程序、库和 SDK 进行复杂的构建时,您不仅必须能够协调每个项目的构建号,还必须能够协调构建号兼容性。
您可以创建一个构建管理标头,该标头实际上是一个带有构建迭代编号(或版本控制信息,即 beta、dev、rel)的文本文件,并通过每个项目的 xcconfig 导入链导入它。
此时,您可以拥有一个目标构建脚本步骤,该步骤将嵌入您的构建/版本控制信息。最好的方法是将保留文本放入 plist 中并在派生文件/构建文件部分上运行 PlistBuddy 来完成此操作。(这样您的源代码控制更改就最小)
如果您可以编写一个构建执行脚本来执行必要的构建号调整(或者更好的是,使用像竹子这样的系统为您创建文件),您可以将其与代码分开。当然,如果您需要执行此操作并进行跟踪,您可能必须签入更改的内部版本号以允许其增加。
因此,我能够按照以下方式维护内部版本号: 2.0.3 b34 (3473) 我们有一个内部版本号和一个 SVN 签出构建点。(请不要进行 git 欺凌,我是老派)
前/后操作更多地用于 Uber 通知或流程:通过电子邮件告知构建已开始/失败/等将已完成的项目复制到已完成的项目服务器。
其他一切作为构建脚本都可以更好地工作。
(和往常一样:让脚本阶段调用外部脚本文件。不要将脚本推入项目,这对源控制项目文件来说是地狱)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
17152 次 |
| 最近记录: |