自动获取svn版本号并替换android版本号

使用svn作为软件版本号的好处是一旦软件出现问题可以定位到具体的源代码,android应用的版本是在AndroidManifest.xml中定义的,每次打包发布的前需要手动修改其中的android:versionCode和 android:versionName,然后再打包,非常麻烦。这里将介绍一种自动修改的方法,每次编译的时候自动获取当前的svn版本号并替换AndroidManifest.xml中的版本号。

1、编写脚本
编写获取svn版本并替换android:versionCode的脚本,以下是shell脚本:

svnv=`svnversion | sed 's/^.*://' | sed 's/[A-Z]*$//'`
if [ -n "$svnv" ] ; then
sed -i s/versionCode=[^$]*/versionCode=\"$svnv\"/g AndroidManifest.xml
fi
result=`cat AndroidManifest.xml |grep versionCode`
echo "current svn version = $svnv , change$result"

将以上代码保存起来svn_version_get.sh,放到工程目录下测试执行:

2、eclipse设置
确定脚本正确执行后,然后就需要让eclipse每次build工程的时候自动执行这个脚本,从而达到自动修改的目的。
1) eclipse中执行脚本需要创建一个Builder,步骤如下:

右键点击工程→Properties→Builder→new→Program

2) 在Main设置选项里设置脚本路径,设置脚本工作路径,最好将脚本放到工程目录下,之后可以将脚本和eclipse的设置随工程上传到svn

3) 在Build Options里设置build选项,选择During manual builds,During a “Clean”,这样以后每次eclipse里点build project都会执行脚本,不要选择During auto builds,因为我们知道eclipse auto build打开之后每次文件改动之后会自动build workspace,然后自动build每个工程,而我们脚本执行了之后就会修改AndroidManifes.xml文件,又会触发auto build,就会形成死循环。

4) 设置Builder的执行顺序,需要将新建的builder放到Android compiler之前,因为我们的目的是修改了AndroidManifest.xml, 所以我们需要先修改再编译apk。

5) 测试一下,Project→build Project,看看编出来的apk是否用了svn版本号。

6) 测试成功之后,可以将脚本以及工程的设置(新建的bulder)一起上传的svn,这样其他开发人员更新之后无需再设置eclipse。

ps:上述的脚本修改的是versionCode,如果修改versionName,将脚本中的versionCode替换成versionName即可,以上内容是在Ubuntu下实现的,如果是在windows下做开发,需要另外实现脚本,可以用ant实现windows下的脚本。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哈,柳暗花明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值