今天看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文档,里面有很多知识,我们都可以从这里学习