Я хочу установить разные значения для свойства в зависимости от того, какой buildType был выбран.Но я понял, проверив консоль Gradle, что на этапе настройки выполняются все 3 типа buildTy, а значение последней сборки остается в свойстве.Я думаю, что это не так, как это должно работать.Я сделал что-то не так?
android {
signingConfigs {
...
}
compileSdkVersion 28
defaultConfig {
...
}
productFlavors {
normal {
manifestPlaceholders = [appName: "@string/app_name"]
signingConfig signingConfigs.configNormalRelease
}
}
buildTypes {
release {
println("app release build")
rootProject.ext.test = false
}
debug {
println("app debug build")
rootProject.ext.test = false
}
staging {
println("app staging build")
rootProject.ext.test = true
}
}
sourceSets {
main {
aidl.srcDirs = ['src/main/aidl']
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
checkReleaseBuilds true
abortOnError false
}
flavorDimensions 'tier'
productFlavors {
normal {
dimension "tier"
}
}
}
Вывод
app release build
app debug build
app staging build
Значение свойства 'test' всегда истинно, независимо от того, я вызываю ассемблерRelease, assemblyDebug, assemblyStaging
Почему я вижу везде, что люди помещают API-ключи, URL-адреса и другие пользовательские вещи в buildTypes, когда они переопределяются последним?Я понимаю, что gradle может вызывать все типы сборки на этапе настройки, но где поставить вышеупомянутые значения, тогда?