Множество signatureConfigs для нескольких вариантов

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

Например, в настоящее время у нас есть Debug / Beta / Release сборок с двумя вариантами, бесплатными и платными, что дает 6 вариантов. Чтобы сделать это немного проще, давайте забудем варианты отладки и сосредоточимся только на freeBeta / paidBeta / freeRelease / paidRelease.

То, что я хотел бы, для каждого варианта использовать отдельную подпись Config.

Пока что единственное решение, которое я смог найти, - это поместить signatureConfigs в buildTypes, чтобы все бета-варианты имели одинаковые signatureConfigs:

buildTypes {
    beta {
        signingConfigs.beta
    }
    release {
        signingConfigs.release
    }
}

В качестве альтернативы можно использовать варианты, и в этом случае все бесплатные варианты будут иметь одинаковые signatureConfigs:

productFlavors {
    free {
        signingConfig signingConfigs.free
        applicationId 'com.example.free'
    }
    paid {
        signingConfig signingConfigs.paid
        applicationId 'com.example.paid'
    }
}

Есть ли способ сделать это в текущем закрытии productFlavor? Это может быть исправлено только путем переопределенияandroid.applicationVariants.all { variant -> и вручную применять signatureConfig для каждого варианта приложения на основе какой-либо схемы именования или какого-либо другого уродливого хака?

Я также нашелэтот ответ, но это не работает в последних инструментах сборки; при компиляции я получаю следующую ошибку:

FAILURE: сборка не удалась, исключение.

Где: строка файла сборки /home/dev/projects/app/build.gradle: 61

Что пошло не так: возникла проблема при оценке проекта «: приложение».

Не удалось найти свойство 'free' в контейнере ProductFlavor.

Ответы на вопрос(1)

Ваш ответ на вопрос