Как мне указать signatureConfigs для разных вариантов продукта с размерами аромата?

Это было задано ранее (например, подписка Gradle со вкусами и размерами), но ответы, похоже, не работают с Gradle 3.5.

С двумя размерами флейвора я указываю signatureConfigs для каждого варианта выпуска следующим образом:

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 варианты.

1 ответ

Вы можете установить конфигурацию подписи перед задачей пакета

отображение имени задачи пакета с вашими вкусами и типами buldTypes

project.afterEvaluate {
    tasks.findByName("packageFlavorBuildType").doFirst {
        packageFlavorBuildType.setSigningConfig(signingConfigs.yourKeyConfig)
    }
}
Другие вопросы по тегам