This has been asked before (e.g. Gradle signing with flavors and dimensions), but the answers don't seem to work with Gradle 3.5.
With 2 flavor dimensions I'm specifying signingConfigs per release variant like this:
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}"
}
This is enough for gradle signingReport
to report the correct settings, but gradle assemblePyramidGoogleRelease
(for example) will build an unsigned apk.
It's skipping the validateSigningPyramidGoogleRelease
task, which is reflected in the results of the gradle tasks --all
output, which doesn't list validateSigning*
for any of the *Release
variants.
you can set signing config before package task
package task name display with you flavors and buldTypes