我尝试将Gradle设置为具有不同的发布和调试版本设置。
用例:开发人员不需要签名文件和配置来构建调试版本。
但gradle拒绝同步/构建debug
版本,因为文件丢失(def keystorePropertiesFile = rootProject.file("keystore.properties")
- 但这些设置仅适用于发布版本。
我做错了什么?
...
android {
...
defaultConfig {
...
}
buildTypes {
release {
...
signingConfigs {
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))
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
debug {
...
}
}
...
}
...
答案 0 :(得分:1)
构建时评估整个gradle文件。所以它会抛出错误。如果调试我认为gradle使用android调试密钥库自动签名apk
评论发布签名
或
提供具有虚拟内容的属性文件,以便gradle构建可以进行调试
答案 1 :(得分:1)
你总是可以用普通的Java来检查:
File keystorePropertiesFile = new File(distrDir, fileName)
if (!keystorePropertiesFile.exists()) {
println "DEBUG message, properties set not from production file"
// throw new GradleException('Also you can interrupt everything')
} else {
println "Do your file loading here..."
}