我正在开发一个安卓应用程序,需要使用特定的密钥对每个应用程序进行签名,即使是测试apk也需要进行签名。
我知道如何通过配置build.gradle来对应用程序进行签名。但是测试应用程序(Instrumentation test)似乎没有这样的配置,我有什么遗漏吗?
signingConfigs {
release {
keyPassword 'your pw'
storeFile file('your keystore file path')
storePassword 'your pw'
keyAlias 'your alias'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
signingConfig signingConfigs.release
}
}
signingConfigs {
debug {
keyPassword 'your pw'
storeFile file('your keystore file path')
storePassword 'your pw'
keyAlias 'your alias'
}
}
但是,还有更多需要注意的地方:
当使用 signingConfigs.debug
时,这告诉 gradle 它是调试密钥,不需要再指定 buildTypes.debug.signingConfig
SigingConfigs.debug
在构建测试时也会生效
在多模块项目中,如果您想测试一个模块,应该在该模块的 build.gradle
中包含 signingConfigs.debug
。
例如,我的项目看起来像:
app
-build.gradle
libs
-src/androidTest/java/com/my/MyTest.java
-build.gradle
在运行 libs 的 AndroidDebugTest
时,将 signingConfigs.debug
添加到 app 中无效。相反,在 libs 的 build.gradle
中添加 signingConfigs.debug
才能起作用。
希望对其他人有所帮助。