自动使用SVN的版本号作为你项目的编译版本号BuildNumber(带修正)

很多朋友在项目开发时会遇到项目的编译版本号设置问题,有的是不知道怎么设置,有的是经常忘了修改,下面介绍下
如何通过脚本自动使用SVN的版本号并惊醒修正来作为你项目的编译版本号,也就是build number。

首先我们看下脚本:

1
2
3
4
REV=svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'
BASEVERNUM=/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${INFOPLIST_FILE}"
echo $REV BASEREV=2707 FINALREV=$[$REV-$BASEREV] echo $FINALREV
/usr/libexec/PlistBuddy -c “Set :CFBundleVersion $BASEVERNUM.$FINALREV””${INFOPLIST_FILE}”

其中,
REV 是取得的svn版本号
BASEVERNUM 是项目的版本号,注意不是编译版本号
BASEREV 这里用来修正,假设你的svn库在你的项目进来前已经有了2707个版本了,你可能希望你的项目从0开始算。
FINALREV 这是修正后的版本数

最后我们使用PlistBuddy工具讲编译版本号以$BASEVERNUM.$FINALREV”的格式写入info plist文件。
假设程序版本号1.0.1,计算出编译版本数(其实是svn提交次数)为105,那么最终的编译版本号,也就是build number 将是

1.0.1.1.5

当然你也可以参照例子进行格式的自定义。

说完了脚本让我们看看怎样把这些应用的具体项目里:

1.如图所示,到Build Phases点击左上部的+,选择New Run Script Build Phase

2.把新添加的Run Script拖动到Compile Sources上面:

3.你也可以给这个脚本起个名字,比如SetBuildNumber Script

4.把脚本代码粘贴进去,大功告成,编译一下,看看你的成果吧。

热评文章