
gradle.properties 파일
android.defaults.buildfeatures.buildconfig=true설정이 없어짐에 따라 BuildConfig 파일이 생성이 되지 않는다.
현재 생성이 되더라도 false로 바꾸면 생성되지 않는다.
앱 개발하면서 많이 쓰는 클래스였지만
항상 노란줄이 떠있다보니 보기에 불편했던건 사실이긴하다.
BuilConfig 클래스에서 VERSION_CODE나 VERSION_NAME 혹은 gradle의 buildType에 버전 분리 하면서 직접 만들어둔 필드 등을 많이 가져다 쓰는 상황이었다.
예를들면 아래의 소스는 BuildConfig.BUILD_TYPE 으로 쉽게 접근이 가능했다.
buildTypes{
.
.
.
create("product"){
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
manifestPlaceholders["appName"] = "상용앱"
resValue("string", "BUILD_TYPE", "product")
signingConfig = signingConfigs.getByName("product")
}
create("dev"){
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
manifestPlaceholders["appName"] = "개발앱"
resValue("string", "BUILD_TYPE", "dev")
signingConfig = signingConfigs.getByName("dev")
applicationIdSuffix = ".dev"
}
}
임시로 gradle에 buildConfig를 true로 설정하면 된다고 하긴 하지만
없애기로 했다니까 빈정상해서 쓰지 않기로 했다.
위의 BUILD_TYPE은 Activity에서 아래의 방법으로 가져올 수 있다.
getString(R.string.BUILD_TYPE)
context를 필요로 한게 문제라 다른데서는 괜찮은데
Object 클래스의 상수를 분기처리할때 좀 짜증나졌다.
in MainActivity
Const.WEB_URL = if(getString(R.string.BUILD_TYPE) == Const.PROD)
"상용서버주소"
else
"개발서버주소"
맘에 안든다.
더 예쁜 방법이 없나