Notice
Recent Posts
Recent Comments
Link
투케이2K
841. (Android/Build) 안드로이드 build.gradle 파일 productFlavors 사용해 빌드 변형 구성 및 applicationId 패키지 명칭 동적 지정 본문
Android
841. (Android/Build) 안드로이드 build.gradle 파일 productFlavors 사용해 빌드 변형 구성 및 applicationId 패키지 명칭 동적 지정
투케이2K 2024. 8. 16. 20:37[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / Kotlin
[방법 설명]
# ------------------------------------------------------------------------------------------------
# [요약 설명]
# ------------------------------------------------------------------------------------------------
1. 안드로이드 build.gradle 파일 >> defaultConfig 에는 기본 applicationId 를 단일 값으로 지정할 수 있습니다.
2. 커스텀 productFlavors 환경을 추가 하기 위해서는 build.gradle 파일 >> productFlavors 추가 및 빌드 변형에 사용할 속성을 정의합니다.
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [build.gradle : 소스 코드]
# ------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// TODO [플러그인 적용 실시]
plugins {
// [안드로이드 플러그인]
id 'com.android.application'
// [코틀린 플러그인]
id 'kotlin-android'
// [파이어베이스 및 구글 서비스]
//id 'com.google.gms.google-services'
}
// -----------------------------------------------------------------------------------------
// TODO [애플리케이션 빌드 설정 지정 실시]
android {
// [컴파일 버전]
compileSdk 33
// [flavorDimensions 사용 명시]
flavorDimensions "flavors"
// [앱 빌드 : 무료, 유료 버전 구분 처리]
productFlavors {
free {
dimension "flavors"
applicationId "com.example.javaproject.free"
versionCode 1 // 빌드 버전
versionName "1.0.1"
}
paid {
dimension "flavors"
applicationId "com.example.javaproject.paid"
versionCode 2 // 빌드 버전
versionName "1.0.2"
}
}
// [Config 셋팅]
defaultConfig {
// ----------------------------
minSdk 21 // 최소 빌드 버전
// ----------------------------
targetSdk 33 // TODO 타겟 빌드 버전
// ----------------------------
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L" // TODO [빌드 시간 저장 위해 추가]
// ----------------------------
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// ----------------------------
}
// [빌드 타입 설정]
buildTypes {
debug {
minifyEnabled false // [true 프로가드 사용 / false 프로가드 사용안함]
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // [프로가드 설정 파일 지정]
manifestPlaceholders = [appLabel: "Twok App [Dev]"] // [AndroidManifest 앱 명칭 지정]
buildConfigField("String", "STRING_BUILD_KEY", "\"DEBUG\"") // TODO [빌드 명칭]
}
release {
minifyEnabled false // [true 프로가드 사용 / false 프로가드 사용안함]
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // [프로가드 설정 파일 지정]
manifestPlaceholders = [appLabel: "Twok App [Release]"] // [AndroidManifest 앱 명칭 지정]
buildConfigField("String", "STRING_BUILD_KEY", "\"RELEASE\"") // TODO [빌드 명칭]
}
}
// [컴파일 자바 버전 지정]
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// [아파치 http 사용 설정]
useLibrary ('org.apache.http.legacy')
}
// -----------------------------------------------------------------------------------------
// TODO [라이브러리 의존성 부여 실시]
dependencies {
}
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [실행 방법]
# ------------------------------------------------------------------------------------------------
1. 안드로이드 스튜디오 실행
2. 상단 [Build] 메뉴 클릭
3. [Select Build Variant] 메뉴 클릭
4. 좌측 표시된 Build Variants 메뉴에서 [app] 모듈에서 각각 free , paid 모드로 구성 된 것 확인
>> freeDebug , freeRelease , paidDebug , paidRelease
5. 휴대폰을 USB 디버깅 연결 후 앱 빌드 수행 실시
6. 참고 : AndroidManifest.xml 파일 package 명칭과 project 패키지 명칭 값은 동일 필요 (소스 코드에서 package 찾기 에러가 발생하지 않음)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.javaproject">
</manifest>
# ------------------------------------------------------------------------------------------------
반응형
'Android' 카테고리의 다른 글
Comments