Android Gradle -- 隐藏签名文件信息

2022-01-10  本文已影响0人  冯可乐同学

----《Android Gradle 权威指南》学习笔记

总目录:Gradle 学习系列 -- 目录

上一篇:自定义 Android Gradle -- 配置签名信息

下一篇:自定义 Android Gradle -- 使用混淆

  1. 在小项目或小团队中,一般都是把 APP 的签名证书和相关密钥放在项目中,甚至还会放在 git 或 SVN 中,这样做非常方便,可以直接访问打包,并且可以借助管理平台进行管理维护。但是签名信息是应用程序的重要信息,属于公司或集体的重要资源,所以要做到分级管理,保证安全。所以如何隐藏签名信息的同时,又能保证每个人可以使用签名信息打包就很有必要。

  2. 签名信息不能放在项目中,也不能放在开发者个人的电脑中,那就只能放在服务器上了。把签名文件和密钥信息放在服务器上,需要发布的正式签名包只在签名服务器上进行打包即可。

  3. 举个栗子,在 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
        }
    }
    ...
}
  1. 配置好上面的代码后,如果是服务器管理员在服务器打包,则会使用正式发布的签名信息。如果是开发者在自己的电脑上打包,则会使用 Android 自带的 debug 签名信息。如果有的开发者也需要使用正式版本的签名信息,比如用于升级测试等目的,也是可以做到,比如在服务器上开通一个临时账户等的操作。
相关代码:https://gitee.com/fzq.com/gradle-demos
上一篇下一篇

猜你喜欢

热点阅读