Переменная Gradle из другого варианта applicationId - PullRequest
0 голосов
/ 05 декабря 2018

Мне нужно создать приложение, созданное со вкусом и создать динамическую переменную, которая указывает на applicationId другого варианта (поскольку код внутренней библиотеки использует идентификатор приложения издругие приложения), но я не знаю, как это сделать.

Вот пример кода:

defaultConfig {
    applicationId "com.sample.mycompany"
}

buildTypes {
    release {
    }
    qualif {
        applicationIdSuffix = ".qual"
    }
    debug {
        applicationIdSuffix = ".dev"
    }
}

flavorDimensions "client", "nature"
    productFlavors {
        ClientA {
            dimension "client"
            applicationIdSuffix = ".A"
        }
        ClientB {
            dimension "client"
            applicationIdSuffix = ".B"
        }

        NatureX {
            dimension "nature"
            applicationIdSuffix = ".X"
        }
        NatureY {
            dimension "nature"
            applicationIdSuffix = ".Y"
            // A buildconfigField variable here to get com.sample.mycompany[client].X[buildTypes]
        }
        NatureZ {
            dimension "nature"
            applicationIdSuffix = ".Z"
            // A buildConfigField variable here to get com.sample.mycompany[client].X[buildTypes]
        }
}

Когда я компилирую с помощью варианта сборки: ClientANatureYDebug , окончательный applicationId равен com.sample.mycompany.AYdev

Я хочу динамическую переменную с buildConfigField (или что-то еще для получения новогопеременная в Java) com.sample.mycompany.AXdev

Я думаю получить окончательный applicationId и заменить applicationIdSuffixтекущее измерение компиляции природы .X и получить результат в новой переменной, но я не знаю, как.Вы можете мне помочь?

1 Ответ

0 голосов
/ 13 декабря 2018

Исправлено с помощью:

buildConfigField "String", "VAL_SHARE_TO_RECEIVER_APP_ID", "APPLICATION_ID.replace(\".Y\", \".X\")"
...