在开发 Android 项目时,为了自动化构建输出签名 APK 方便,通常会配置 signingConfigs
项来直接输出签名后的 APK。在构建开源项目时,证书文件一般不会上传到仓库,证书相关的配置也会存在被 ignore 的本地 properties 文件中。之前使用 Travis 构建开源项目时,使用的方式是仓库中存有一个加密的证书文件,通过在 Travis 控制台配置这个加密文件的密钥,以及其他必需的配置项来完成构建。在 Jenkins 里也是类似的方式不过更加方便一些。
首先,可以把证书文件直接上传到 Jenkins 里:
-
进入 Credentials
- System
- Global credentials (unrestricted)
- Add Credentials
,选择 Secret File
,选择要上传的签名文件,ID 和 Description 按照需要给一个有含义的文本即可
-
同级下面,再通过 Add Credentials
添加一项,选择 Username and Password
。Username 存储签名需要的 Alias,密码存储 Store Password 和 AliasPassword(这里我自己的约定是这样的,如果不相符可以建立更多的 credential 项)。
-
在构建项目下面,Build Environment
下面勾选 Use secret text(s) or file(s)
,Binding
下添加一个 Secret File
和 Username and Password
,分别对应 1、2 步添加的两项,绑定三个变量:KEY_PATH
、KEY_ALIAS
和 KEY_PASSWD
。