Gradle构建项目时,将敏感信息保存在build.gradle之外

在做release时,你app的build.gradle定义signingConfigs可能内容是这样的:

        signingConfigs { //签名配置
            release {
            storeFile file("debuge.keystore")
            storePassword 'pwd123'
            keyAlias 'zhan'
            keyPassword 'pwd1234'
        }
    }

由于build.gradle文件一般都会集成到代码的版本控制中,这样所有人都会有签名文件的密码,会有后续的麻烦。所以呢,我们接下来要做的就是把签名文件的密码隔离起来,写到一个配置文件中,此配置文件不包含在代码版本控制中,这样其他开发者就不会知道签名文件的密码。

将敏感信息保存在build.gradle之外

gradle的配置文件一般以.properties结束。

  • 建立一个不加入版本控制系统的 xxxx.properties文件(个人建在app 下 version.properties)。
storefile=xxx.keystore
keyAlias=your alias
KEYSTORE_PASSWORD=your.password
KEY_PASSWORD=your.password789

注意没有字符串双引号””
注意没有字符串双引号””
注意没有字符串双引号”“

  • build.gradle下 调用 version.properties 文件
def versionPropsFile = file("version.properties")
Properties versionProps = new Properties()

android {
    signingConfigs { //签名配置
        release {
            if (versionPropsFile.canRead()) {
                versionProps.load(new FileInputStream(versionPropsFile))
                storeFile file(versionProps['storefile'].toString())
                storePassword versionProps['KEYSTORE_PASSWORD'].toString()
                keyAlias versionProps['keyAlias'].toString()
                keyPassword versionProps['KEY_PASSWORD'].toString()
            } else {
                throw new GradleException("Could not read version.properties!")
            }
        }
    }
}

你可能感兴趣的:(gradle,签名,Build,release)