以前有人问过这个问题(例如Gradle 签名与风味和维度),但答案似乎不适用于 Gradle 3.5。
使用 2 个风味维度,我为每个版本变体指定了以下签名配置:
signingConfigs {
klondikeGoogleRelease
...
pyramidGoogleRelease
pyramidAmazonRelease
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
}
}
applicationVariants.all { variant ->
def flavors = variant.productFlavors
variant.mergedFlavor.setApplicationId flavors[0].ext.applicationId + flavors[1].ext.applicationIdSuffix
if (variant.buildType.name == "release") {
variant.mergedFlavor.setSigningConfig android.signingConfigs[variant.name]
}
println "Mergedflavor: ${variant.name} signing ${variant.signingConfig.name} ready ${variant.signingReady}"
}
这足以gradle signingReport
报告正确的设置,但gradle assemblePyramidGoogleRelease
(例如)将构建一个未签名的 apk。
它正在跳过validateSigningPyramidGoogleRelease
任务,这反映在gradle tasks --all
输出结果中,它没有列出validateSigning*
任何*Release
变体。