본문 바로가기
카테고리 없음

build.gradle 쉽게 관리해보자.

by 아카이sun 2019. 10. 10.

프로젝트 개발을 하다보면 build.gradle에 여러가지 작업을 해야합니다.

기존적인 앱설정, 라이브러리의 추가 등등..

이번에 개발한 프로젝트에서는 추가한 sdk들이 너무 많았고 그로인해 추가해야할 설정값들이 많았습니다.

관리적 측면에서 build.gradle에서 BuildConfig에 추가하여 관리하는 것이 낫다고 생각했습니다.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.test.app"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    
    buildTypes {
        release {
           signingConfig signingConfigs.release //signing config
           zipAlignEnabled true
           minifyEnabled true // encrypt
           proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
           debuggable false
           buildConfigField "String", "KEY1", '"KEY1"'
           buildConfigField "String", "KEY2", '"KEY2"'
           buildConfigField "String", "KEY3", '"KEY3"'
           buildConfigField "String", "KEY4", '"KEY4"'
           //..이하생략
        }
        staging {
        	signingConfig signingConfigs.staging //signing config
            zipAlignEnabled true
            minifyEnabled false // encrypt
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            debuggable false
            buildConfigField "String", "KEY1", '"KEY10"'
            buildConfigField "String", "KEY2", '"KEY20"'
            buildConfigField "String", "KEY3", '"KEY30"'
            buildConfigField "String", "KEY4", '"KEY40"'
            //..이하생략
        }
        debug {
        	signingConfig signingConfigs.debug //signing config
            zipAlignEnabled true
            minifyEnabled false // encrypt
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            debuggable true
            buildConfigField "String", "KEY1", '"KEY11"'
            buildConfigField "String", "KEY2", '"KEY22"'
            buildConfigField "String", "KEY3", '"KEY33"'
            buildConfigField "String", "KEY4", '"KEY44"'
            //..이하생략
        }
        
        dependencies {
            //라이브러리..
        }
    }

사용을 하다보니 추가해야할 값들이 너무 많아져서 보기에도 불편해졌는데요.

별도의 config.gradle파일을 만들어 관리하도록 변경하였습니다.

 

config.gradle

android {
    buildTypes {
        release {
           buildConfigField "String", "KEY1", '"KEY1"'
           buildConfigField "String", "KEY2", '"KEY2"'
           buildConfigField "String", "KEY3", '"KEY3"'
           buildConfigField "String", "KEY4", '"KEY4"'
           //..이하생략
        }
        staging {
            buildConfigField "String", "KEY1", '"KEY10"'
            buildConfigField "String", "KEY2", '"KEY20"'
            buildConfigField "String", "KEY3", '"KEY30"'
            buildConfigField "String", "KEY4", '"KEY40"'
            //..이하생략
        }
        debug {
            buildConfigField "String", "KEY1", '"KEY11"'
            buildConfigField "String", "KEY2", '"KEY22"'
            buildConfigField "String", "KEY3", '"KEY33"'
            buildConfigField "String", "KEY4", '"KEY44"'
            //..이하생략
        }
    }

 

그리고 build.gradle에는 단 한줄만 추가해주면 됩니다.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
//아래와 같이 추가해주세요
apply from: './config.gradle'

android {
    // 이하생략..
}

 

이렇게 변경하고 난 후에는 눈에 보기에도 불편함이 적어졌고 관리를 하기에도 쉬워졌습니다.

댓글