Gradle - 用于发布和调试的不同配置不起作用

时间:2018-03-29 08:42:05

标签: android gradle

我尝试将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 {
            ...
        }
    }
    ...
}
...

2 个答案:

答案 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..."
 }