41장. Build Variant와 Source Set을 이해한다
debug/release build type과 dev/stage/prod product flavor의 조합이 variant다. applicationId suffix, API base URL, debuggable, minification, signing과 resource가 어느 source set에서 오는지 표로 만든다. debug backend와 production signing이 섞이지 않게 한다. Build Variants 창의 선택은 editor가 해석하는 variant이며 명시적 Gradle task의 build 계약과 구분한다.
android {
buildTypes { getByName("release") { isMinifyEnabled = true } }
flavorDimensions += "env"
productFlavors {
create("stage") { dimension = "env"; applicationIdSuffix = ".stage" }
create("prod") { dimension = "env" }
}
}
stageDebug와 prodRelease의 package, server, permission, icon label과 signing certificate를 test한다. 같은 class가 둘 이상의 source set에 중복되면 어떤 variant에서 충돌하는지 확인한다.