-
Android Gradle - Build Type, FlavorAndroid 2021. 4. 24. 18:38
android { ... buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } flavorDimensions "version" productFlavors { free { dimension "version" manifestPlaceholders = [ appLabel: "Free-Flavor" ] applicationIdSuffix ".free" versionCode 10000 versionName "1.0.0" buildConfigField "String", "EXPLAIN", "\"This is FREE-FLAVOR application\"" resValue "string", "appName", "Free-Flavor" } paid { dimension "version" manifestPlaceholders = [ appLabel: "Paid-Flavor" ] applicationIdSuffix ".paid" versionCode 20000 versionName "2.0.0" buildConfigField "String", "EXPLAIN", "\"This is PAID-FLAVOR application\"" resValue "string", "appName", "Paid-Flavor" } } }
Android 플러그인에서는 하나의 프로젝트로 목적이 다른 결과물을 생성할 수 있다.
1. buildTypes 블록
- 기본은 release, debug
- debug 개발 단계에 사용, relaease는 외부 배포할때 사용
- release일때 proguard적용을 false로 지정
- minifyEnabled가 true이면 proguard-rules.pro 파일 참고하여 proguard를 실행
2.Flavor
- flavorDimensions
- 빌드의 구분
-"api", "mode", "version" 등 api 버전에 따른 구분, 앱의 기능에 따른 구분, version에 따른 구분 등을 나타냄
- manifestPlaceholders
- AndroidManifest.xml 파일에서 ${appLabel} 처럼 사용
- applicationIdSuffix
- defaultConfig에 명시된 applicationId 뒤에 붙어서 각 version의 ApplicationId 를 구분하게 해줌
- buildConfigField
- BuildConfig라는 클래스에서 호출할 수 있는 값
- BuildConfig.##### 사용
- resValue
- 문자열 정의로 @string/##### 와 같이 사용
Reference
- 유동환, 안드로이드를 위한 Gradle, 한빛미디어
'Android' 카테고리의 다른 글
SurfaceView (0) 2021.05.13 ADB Shell 명령어 정리 (0) 2021.04.25 Android Gradle - Gradle Scripts(2) (0) 2021.04.24 Android Gradle - Gradle Scripts(1) (0) 2021.04.24 Android Gradle - Gradle이란 (0) 2021.04.23