Я хотел бы получить вариант сборки во время времени выполнения, действительно ли это возможно без дополнительной конфигурации или кода?
Вот пример, чтобы определить и добраться BuildConfig
для другой разновидности
android {
defaultConfig {
...
buildTypes {
...
}
flavorDimensions "default"
productFlavors {
develop {
applicationIdSuffix ".dev"
versionNameSuffix "-dev"
}
staging {
applicationIdSuffix ".stg"
versionNameSuffix "-stg"
}
production {
applicationIdSuffix ""
versionNameSuffix ""
}
}
applicationVariants.all { variant ->
def BASE_URL = ""
if (variant.getName().contains("develop")) {
BASE_URL = "https://localhost:8080.com/"
} else if (variant.getName().contains("staging")) {
BASE_URL = "https://stagingdomain.com/"
} else if (variant.getName().contains("production")) {
BASE_URL = "https://productdomain.com/"
}
variant.buildConfigField "String", "BASE_URL", "\"${BASE_URL}\""
}
}
Используя
BuildConfig.BASE_URL
Если Вы не являетесь уже ароматическими затем никакая потребность обеспечить дополнительное строковое поле в Вашем gradle. Просто выполните простые шаги для получения деталей сборки:
Для варианта сборки: BuildConfig. РАЗНОВИДНОСТЬ
Для кода версии сборки: BuildConfig. VERSION_CODE
Для имени версии сборки: BuildConfig. VERSION_NAME