使用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、ecl