Gradle assinando sabores com chaves diferentes no Android

Eu tenho muitos sabores do meu aplicativo Android eQuero que todos, exceto um, usem a mesma chave. Há um que precisa usar uma chave diferente.

Como faço para substituir osigningConfig por apenas 1 versão do aplicativo (mas dentro do mesmo tipo de build, por exemplo, "release")?

Eu gostaria que todas as compilações usassem a configuração principal do release.Eu só querosubstituir 1 saborEu quero poder executar todas as compilações de versão com um únicogradlew assembleRelease comando

Este último ponto é importante, pois atualmente tenho mais de 120 sabores diferentes e em crescimento. Para personalizar todos os sabores individualmente, é preciso muito trabalho extra.

Posts relacionados Eu tentei:

Produzindo várias construções assinadas com chaves diferentes do tipo de construção única

isso requer configuração para cada saborparece que não usa meu costumesigningConfig de qualquer forma

Assinatura de sabores de produtos com gradle

solução aceita não funciona (para mim)de acordo comum comentário isso é possível colocandobuildTypes dentro deproductFlavors mas eu não entendo como fazer isso.

Configuração de assinatura de depuração nos sabores do produto Gradle

como explicado na postagem do blog:Construindo várias edições de um aplicativo Android com Gradleisso não funciona na verdadefunciona perfeitamentemas não escala bem para 119 sabores

No geral, cada solução ainda parece usar a configuração padrão da versão, em vez da minha configuração personalizada.

Partes importantes do meubuild.gradle parece com isso:

signingConfigs {
    releaseConfig {
        storeFile file('key')
        storePassword "pass"
        keyAlias "alias"
        keyPassword "pass"
    }

    custom {
        storeFile file('custom_key')
        storePassword "pass"
        keyAlias "alias"
        keyPassword "pass"
    }
}

productFlavors {
    apple {
        applicationId "demo.apple"
    }
    banana {
        applicationId "demo.banana"
    }

    // def customConfig = signingConfigs.custom
    custom {
        applicationId "custom.signed.app"
        // signingConfig customConfig
    }
 }


buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
    release {
         signingConfig signingConfigs.releaseConfig
         // productFlavors.custom.signingConfig signingConfigs.custom
    }
}

questionAnswers(6)

yourAnswerToTheQuestion