Android中Gradle的安全配置

今天看Google Android developer文档 突然看到关于签署应用的安全问题。仔细看了下,好像自己的项目,并没有这样实现(这也是一道面试题)

1.应用场景

项目中如果把签名文件的参数上传到git,别人可以通过别的渠道获取,从而导致对项目造成的不必要的损失。

2.解决方案

google给出的方案是可以把相应的属性配置在本地,

1.在项目的根目录创建keystore.properties文件,把相应的属性内容放进去
storePassword=myStorePassword //不需要带‘’号
keyPassword=mykeyPassword
keyAlias=myKeyAlias
storeFile=myStoreFileLocation
2.在模块的build.gradle文件中,android{}块前面添加加载keystore.properties文件的代码
// Create a variable called keystorePropertiesFile, and initialize it to your
// keystore.properties file, in the rootProject folder.
def keystorePropertiesFile = rootProject.file("keystore.properties")

// Initialize a new Properties() object called keystoreProperties.
def keystoreProperties = new Properties()

// Load your keystore.properties file into the keystoreProperties object.
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    ...
}
3然后修改模块中的代码
   signingConfigs {
      //     config {
      //     keyAlias 'android'
      //    keyPassword 'android'
      //    storeFile file('android.keystore')
      //   storePassword 'android'
      // }
        config{
           keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
          storeFile file(keystoreProperties['storeFile'])
           storePassword keystoreProperties['storePassword']

        }
    }

这样就配置好了,把配置文件保存好,在.gitignore文件中忽略,这样就不会上传敏感信息到git上去了,建议大家平时可以多看看developer文档,里面有很多知识,我们都可以从这里学习

你可能感兴趣的:(Android中Gradle的安全配置)