본문 바로가기
안드로이드

[android stuido] 개발앱, 운영앱 구분하기 (productFlavors)

by 아이디생성자 2022. 10. 31.

보통 앱을 개발할땐 개발서버와 운영서버를 나누어서 관리하게 된다.

 

그러다보면 운영앱과 개발앱엔 버전부터, 서버, 계정 등등 독립적으로 관리될 사항이 한둘이 아닌데,

 

이럴땐, 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

댓글