最近尝试了下集成百度地图的SDK。使用过百度地图SDK的人都知道,百度给的key是根据我们的密钥sha1值和包名生成的,所以这样就产生了一个问题,当我们直接运行,或者打debug包和release包的时候,如何配置key。
直接在build.gradle中配置签名
在build.gradle中如下进行配置:
apply plugin: 'com.android.application'
android {
...
//签名配置
signingConfigs {
debugConfig {
keyAlias "demodemo"
keyPassword "demodemo"
storeFile file("G:/AndroidStudioWorkSpace/Test/demo.keystore")
storePassword "demodemo"
}
releaseConfig {
keyAlias "demodemo"
keyPassword "demodemo"
storeFile file("G:/AndroidStudioWorkSpace/Test/demo.keystore")
storePassword "demodemo"
}
}
defaultConfig {
...
}
//打包配置
buildTypes {
debug {
signingConfig signingConfigs.debugConfig
}
release {
signingConfig signingConfigs.releaseConfig
...
}
}
}
dependencies {
...
}
在signingConfigs中,可以写两个代码块,分别名为debugConfig和releaseConfig,并在其中写好一个完整签名需要的keyAlias、keyPassword、storeFile file、storePassword。
然后在buildTypes中,分两个代码块,分别是debug时用的,和release时用的。再其中引用刚刚写好的debugConfig和releaseConfig即可。
这种方法有以下几点注意:
- signingConfigs代码块一定要写在buildTypes前面,否则会报下面这种错:
Could not find property 'debugConfig' on SigningConfig container.
- 如果defaultConfig中有用到签名的话,signingConfigs也要写在defaultConfig之前。
- 签名密码写在gradle中不安全,故最好在打包上线的时候将相关代码注释掉。