Android Gradle -- 隐藏签名文件信息
2022-01-10 本文已影响0人
冯可乐同学
----《Android Gradle 权威指南》学习笔记
上一篇:自定义 Android Gradle -- 配置签名信息
下一篇:自定义 Android Gradle -- 使用混淆
-
在小项目或小团队中,一般都是把 APP 的签名证书和相关密钥放在项目中,甚至还会放在 git 或 SVN 中,这样做非常方便,可以直接访问打包,并且可以借助管理平台进行管理维护。但是签名信息是应用程序的重要信息,属于公司或集体的重要资源,所以要做到分级管理,保证安全。所以如何隐藏签名信息的同时,又能保证每个人可以使用签名信息打包就很有必要。
-
签名信息不能放在项目中,也不能放在开发者个人的电脑中,那就只能放在服务器上了。把签名文件和密钥信息放在服务器上,需要发布的正式签名包只在签名服务器上进行打包即可。
-
举个栗子,在 build.gradle 中可以如下配置:
android {
compileSdk 31
signingConfigs {
def appStoreFile = System.getenv("STORE_FILE")
def appStorePassword = System.getenv("STORE_PASSWORD")
def appKeyAlias = System.getenv("KEY_ALIAS")
def appKeyPassword = System.getenv("KEY_PASSWORD")
// 当不能从环境变量中获取到签名信息的时候,就用项目中带的 debug 签名
if (!appStoreFile || !appStorePassword || !appKeyAlias || !appKeyPassword) {
appStoreFile = "debug.keystore"
appStorePassword = "android"
appKeyAlias = "androiddebugkey"
appKeyPassword = "android"
}
release {
storeFile file(appStoreFile)
storePassword appStorePassword
keyAlias appKeyAlias
keyPassword appKeyPassword
}
}
...
}
- 配置好上面的代码后,如果是服务器管理员在服务器打包,则会使用正式发布的签名信息。如果是开发者在自己的电脑上打包,则会使用 Android 自带的 debug 签名信息。如果有的开发者也需要使用正式版本的签名信息,比如用于升级测试等目的,也是可以做到,比如在服务器上开通一个临时账户等的操作。