解放双手——Android的自动化构建及发布

本文分享了如何使用Gradle自动构建并发布Android应用到fir.im,包括上传apk、mapping.txt到bugly,以及借助Gitlab-CI实现进一步自动化。通过自定义Gradle插件和配置,实现了多flavor发布,结合Docker版CI Runner提升效率。

在一个App从开发到测试的过程中,我有很长一段时间都是这样做的:打包,上传到tower,在tower上编写本次更新说明,通知测试。一般情况下,打包及上传的过程大概也就2分钟。除此之外,由于项目代码有作混淆,并且使用了bugly,因此在发出每个版本之后还需要将混淆的mapping.txt传到bugly上。当日复一日,并且有时还遇到网络较差的情况时,这种人工手动的工作方式就很影响工作效率及心情了。因此,自动化构建及发布就成了必须掌握的技能了。
本篇分享的是我在Android自动化构建的一些经验,涉及到的工具及网站如下:
- Gradle
- fir.im
- Gitlab
- gitlab-ci-multi-runner

所述内容包含:
- 使用Gradle自动构建并发布到fir
- 使用Gitlab-CI,在提交时自动化构建并发布到fir
- 在服务器配置docker版的gitlab-ci-multi-runner
- 多flavor时,在fir上同时发布的解决方案

Gradle及fir带来的解放生产力

构建并上传apk到fir

我接触fir.im的时间比较早,那时官方就已经提供了一个命令行打包并上传的工具fir-cli。但是有两个问题是我难以忍受的:
1. 它需要安装,并且由于使用ruby编写,所以还需要ruby环境
2. 它会构建所有flavor的版本,虽然最后只上传一个(该问题后来已经解决)

于是,在发现它有提供API之后,我查阅了下Gradle的文档,自己写了一个简单的fir发布插件——fir-publish
这个插件很小很轻,没有使用额外依赖库,网络请求使用的也是Gradle本身就有的http-client的API。使用方式如下:
首先在根项目的build.gradle中加入以下依赖:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.githang:fir:0.1.6'
    }
}

然后在app里的build.gradle文件末尾加入以下配置:

apply plugin: 'fir'
fir {
    apiToken //fir.im上的API token
    bundleId android.defaultConfig.applicationId
    flavor "Test" (如果没有productFlavor,可不配置此项),仅在上传apk时需要
    appName 你的应用名称,仅在上传apk时需要
    icon 应用图标路径,仅在上传图标时需要
    changeLog "更新日志" // 或者使用 file("日志文件路径")
}

其中的API token在你登录fir之后,点击自己的账号就可以获取。

该插件向你的project添加以下4个任务:
- firCert 获取上传凭证
- firIcon 上传图标,依赖于firCert
- firApk 上传APK,依赖于firCert及assembleRelease(或assembleFlavorRelease)
- firAll 上传图标及APK,依赖于firIcon及firApk

在上面的配置中,更新日志可以直接写在上面,也可以单独创建一个更新日志的文件(推荐),每次要发布时只需要修改这个文件上的更新日志,然后执行以下命令即可自动构建并发布到fir:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值