内容简介:Android 应用开发到打包上线经常有这样的场景:需要上线了,打了个包,发现版本号没改;然后改了版本号,再打包,提交。为了方便以后定位版本,我们一般还会在发布后为这个版本打个 tag,这个 tag 会标记我们上线前的最后一次提交。经过优化后,我们得到这样的流程:上线前确认版本的名称,比如 1.0。将 1.0 作为 tag 名称新建一个 tag 并推送,git 服务器通过 WebHook 触发 CI 构建这个版本的 APK,并根据 tag 名称来生成版本名(Version Name),根据 tag 的数量
Android 应用开发到打包上线经常有这样的场景:需要上线了,打了个包,发现版本号没改;然后改了版本号,再打包,提交。为了方便以后定位版本,我们一般还会在发布后为这个版本打个 tag,这个 tag 会标记我们上线前的最后一次提交。
经过优化后,我们得到这样的流程:上线前确认版本的名称,比如 1.0。将 1.0 作为 tag 名称新建一个 tag 并推送,git 服务器通过 WebHook 触发 CI 构建这个版本的 APK,并根据 tag 名称来生成版本名(Version Name),根据 tag 的数量生成版本号 (Version Code);如果发现上线前仍需改动,直接删除这个 tag,修改提交直到达到上限标准后再次创建 tag,触发构建。
实现这个流程的第一步,就是在 gradle 中添加两个方法来获取版本名和版本号:
// 根据应用提交记录数来生成版本号
def getAppVersionCode() {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'tag', '--list'
standardOutput = stdout
}
return stdout.toString().split("\n").size()
}
// 获取最新的 tag 名称
def getLastTagName() {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--abbrev=0', '--tags'
standardOutput = stdout
}
return stdout.toString().trim()
}
之后修改 Application 应用中 android
-> defaultConfig
中的相关属性为方法获得:
android {
//...
defaultConfig {
//...
versionCode getAppVersionCode()
versionName getLastTagName()
//...
}
//...
}
这样在执行 assemble 任务打包时,APK 的版本名和版本号都会从 git 的 tag 信息中获取(包括本地调试)。下一步就是解决 git 服务器出发的问题,这里 git 服务器和 CI 以最常见的 GitLab、Jenkins 为例。
首先在 Jenkins 的 Job -> Configure 中打开 Trigger builds remotely。然后在 GitLab 在项目界面的 Settings -> Integrations 中添加一个 Web Hook,URL 为 Jenkins 提供的 URL,Trigger 勾选 Tag Push Events。这样就完成了触发构建的流程。
以上所述就是小编给大家介绍的《使用 Git 的 tag 管理 App 版本》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Unity版本使用情况统计
- Unity版本使用情况统计
- Selenium使用总结(Java版本)
- RxJava源码分析及版本对比(一)——1.x版本基本使用分析
- 使用 GVM 工具管理 Go 版本
- 使用React构建精简版本掘金(五)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google 广告高阶优化(第3版)
【美】Brad Geddes(布兰德.盖兹) / 宫鑫、康宁、王娜 / 电子工业出版社 / 2015-9 / 99.00元
《Google 广告高阶优化(第3版)》可以说是Google AdWords的终极指南,内容非常丰富,第三版在内容上进行了全面更新。介绍了AdWords的最新最完整的功能,阐释其工作原理,也提供了相应的优化方法、策略和实践教程,读者可以随时在自己的PPC广告系列中进行实践。第三版增添了50多页新内容,涵盖Google系统最近的所有变动,包括广告系列结构的变化、出价调整器、重定向、视频广告功能、全新......一起来看看 《Google 广告高阶优化(第3版)》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
XML、JSON 在线转换
在线XML、JSON转换工具