보통 앱을 개발할땐 개발서버와 운영서버를 나누어서 관리하게 된다.
그러다보면 운영앱과 개발앱엔 버전부터, 서버, 계정 등등 독립적으로 관리될 사항이 한둘이 아닌데,
이럴땐, productFlavor를 통해 id를 구분하여 추가해 각각 관리될 수 있도록 하면 편리하다.
기본적인 빌드 구성
defaultConfig {
applicationId "com.company.myApp"
minSdkVersion 28
targetSdkVersion 31
versionCode 1
versionName "1.0"
archivesBaseName = "myApp"
}
빌드 구성 추가해보기
applicationIdSuffix로 id에 접미사를 추가해서 구분해줘야 앱이 개별적으로 설치가 된다.
flavorDimensions "version"
productFlavors {
dev {
dimension = "version"
applicationIdSuffix '.dev'
versionCode 15
versionName "1.2.7"
archivesBaseName = "myapp_dev"
manifestPlaceholders["appLabel"] = "My App dev"
buildConfigField("boolean", "IS_DEV", "true")
}
palystore {
dimension = "version"
versionCode 1
versionName "1.0.0"
archivesBaseName = "myapp_store"
signingConfig signingConfigs.release
manifestPlaceholders["appLabel"] = "My App"
buildConfigField("boolean", "IS_DEV", "false")
}
}
적용된 모습
추가로 buildConfigField 를 활용하여 API 주소와 같이 서버별 분기가 필요한 변수를 설정해주면 좋다.
val isTest = BuildConfig.IS_TEST
val API_HOST = if (isTest) {
"https://api.myapp.com/dev/"
} else {
"https://api.myapp.com/"
}
더 자세한 내용 -> https://developer.android.com/studio/build/build-variants.html?hl=ko
'안드로이드' 카테고리의 다른 글
[android] 구글 로그인 플레이스토어 업로드시 오류 (0) | 2022.11.10 |
---|---|
[android] 리사이클러뷰 아이템을 드래그해서 위치 바꾸기 (0) | 2022.11.09 |
[android] 그림자가 안생겨요. elevation not working. (0) | 2022.11.02 |
[android] INSTALL_PARSE_FAILED_MANIFEST_MALFORMED (0) | 2022.11.02 |
[android studio] dolphin 업데이트 (0) | 2022.10.26 |
댓글