buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildTypes.each {
it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_RELEASE
it.buildConfigField 'String', 'PARSE_APPLICATION_ID', PARSE_RELEASE_APPLICATION_ID
it.buildConfigField 'String', 'PARSE_CLIENT_ID', PARSE_RELEASE_CLIENT_ID
it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_LIVE
}
}
debug {
versionNameSuffix "-DEBUG"
applicationIdSuffix ".debug"
buildTypes.each {
it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_DEBUG
it.buildConfigField 'String', 'PARSE_APPLICATION_ID', PARSE_DEBUG_APPLICATION_ID
it.buildConfigField 'String', 'PARSE_CLIENT_ID', PARSE_DEBUG_CLIENT_ID
it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_TEST
}
}
}
但它无法工作,即使在发布模式下也始终生成调试密钥。 (我从gradle.properties提供的所有变量值)
答案 0 :(得分:-1)
它是 buildTypes.each 的错误它每次都被执行并且只为调试发布创建一个密钥(根据build.gradle I中编写的序列,调试密钥或发布密钥)想)
这就是我解决这个问题的方法
创建了两种不同类型的构建 buildTypes.debug 和 buildTypes.release
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
/*While app is in debug mode disable crashlytics*/
debug {
versionNameSuffix "-DEBUG"
applicationIdSuffix ".debug"
}
}
buildTypes.debug {
it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_DEBUG
it.buildConfigField 'String', 'PARSE_APPLICATION_ID', PARSE_DEBUG_APPLICATION_ID
it.buildConfigField 'String', 'PARSE_CLIENT_ID', PARSE_DEBUG_CLIENT_ID
it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_TEST
}
buildTypes.release {
it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_RELEASE
it.buildConfigField 'String', 'PARSE_APPLICATION_ID', PARSE_RELEASE_APPLICATION_ID
it.buildConfigField 'String', 'PARSE_CLIENT_ID', PARSE_RELEASE_CLIENT_ID
it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_LIVE
}