之前已经问过这个问题(例如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}"
}
Run Code Online (Sandbox Code Playgroud)
这足以gradle signingReport报告正确的设置,但gradle assemblePyramidGoogleRelease(例如)将构建一个未签名的 apk。
它正在跳过validateSigningPyramidGoogleRelease任务,这反映在gradle tasks --all输出结果中,没有列出validateSigning*任何*Release变体。
android gradle android-productflavors android-flavordimension