预计阅读:3分钟
同事问我,“怎么这么快就进入状态了?完全没有节后综合征”
停下手中的事情一想,还真是,偌大的办公室,几乎都看不到几个人了,即使还是不到晚上十点,只好义正言辞地回答他,“以勤补拙”
其实,我是要写公众号
言归正传,今天介绍#安卓借助Jenkins自动构建# 时,每次build时将VersionCode自增1的办法
问题:
在GooglePlay或者其它应用商店更新App时,要求VersionCode比旧版本大(VersionCode是int值),同样,测试人员在测试时,如果VersionCode不变的话也会出现无法安装的问题
方案:
每次release之前手动修改VersionCode
服务器build时自动+1
我们当然要选择自动化方案
核心逻辑概要:分以下三步:
将VersionCode加1
gradlew assembleRelease
git commit and push
想要VersionCode + 1,方案其实有好几种:
直接修改app的build.gradle文件内的versionCode——缺点:每次修改后都会触发gradle的Sync提示
用中间文件,gradle解析时读取中间文件、自动构建时也读取该文件,实现方案有两种
直接写入一个普通文件(如txt、Java文件)——缺点:Java文件置于工程中会占用额外空间,其它文件的解析需要在build.gradle中添加逻辑
拓展项目的gradle变量域(我们的选择)
show you the code:
在工程中添加如下文件:
关键代码:
工程build.gradle文件头部添加依赖:
项目build.gradle文件直接按照下列方式引用:
shell 脚本中对versionCode的修改函数:
git commit and push 的函数:
具体调用:
至此,Jenkins在自动构建时,每次都会产生一个对Versioncode的修改提交:
展开的细节比较多,写了一个大概,对细节感兴趣的读者请留言
拓展知识:
shell基础:https://github.com/qinjx/30min_guides/blob/master/shell.md
Jenkins自动构建:https://www.jianshu.com/p/dceaa1c7bb49
领取专属 10元无门槛券
私享最新 技术干货