Храните конфиги ароматов в отдельных файлах.gradle

Если коротко - есть ли способ сохранить конфиги ароматов в отдельных файлах.gradle?

И для более подробной информации - я хотел бы иметь файлы.gradle для каждого аромата (например, flavGermany.gradle, flavUkraine.gradle, flavItaly.gradle и т. Д.), Которые будут включены в директиву apply из основного приложения. Каждый вариант.gradle будет содержать конфиги для подписи и сборки.

2 ответа

Решение

Что вы можете. Просто поместите эти файлы в папку приложения и затем импортируйте их в папки приложения build.gradle.

Ваш flavourGermany.gradle будет выглядеть так:

android {
    productFlavors {
        flavorGermany {}
    }
}

И затем вы импортируете их в свой build.gradle (приложение):

apply plugin: 'com.android.application'
apply from: 'flavorGermany.gradle'
apply from: 'flavorUkraine.gradle'

При настройке подписи аромата в отдельном файле.gradle я получил сообщение об ошибке:

flavorGermany.gradle: 1: unable to resolve class com.android.ide.common.signing.KeystoreHelper

В flavourGermany.gradle KeystoreHelper используется следующим образом:

android {
    signingConfigs {
        germany {
            storeFile = file(KeystoreHelper.defaultDebugKeystoreLocation());
            storePassword = "some_password";
            keyAlias = "some_key";
            keyPassword = "some_other_key";
        }
    }
    // other configs ...
}

Чтобы это исправить, я должен был добавить это до определения "android":

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        // Android gradle plugin
        classpath 'com.android.tools.build:gradle:2.1.3'
    }
}

С этим изменением исчезла ошибка импорта, и Android Studio смогла распознать дополнительный вариант, описанный в отдельном файле.gradle.

Другие вопросы по тегам