Android 바이너리 빌드(Build Type별 구분)

Pre Requirement

1. version 확인

build.gradle.kts(:app)

신규 버전 배포 시 versionCode, versionName를 올려주어야 합니다.

→ 바이너리 충돌 방지


android {
    namespace = "com.android.com"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.android.com"
        minSdk = 30
        targetSdk = 34
        versionCode = 1
        versionName = "1.0.1"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
...
}

2. build variants 확인

default로 debugrelease가 생성되어있습니다.

Debug Build

1. build variants

Pre Requirement의 build variantsdebug로 설정합니다.

2. APK build를 기준

Android Studio > Build > Build Bundle(s) / APK(s) > Build APK(s)

3. Output 확인

app > build > outputs > apk > debug > app-debug.apk

Release Build

1. build variants

Pre Requirement의 build variantsrelease로 설정합니다.

2. AAB build를 기준

Android Studio > Build > Generate Signed Bundl / APK

3. Key store

(이미 있다면 사용하시고 아니라면 생성이 필요합니다) 지우시면 안됩니다!!!!!

4. Output 확인

app > release > app-release.aab

Build Type을 활용한 앱 빌드(debug, release) 구분

build.gradle.kts(:app)

공식문서에서 확인할 수 있듯 buildTypes에 따라 variables를 다르게 줄 수 있습니다.

buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            manifestPlaceholders["appName"] = "@string/app_name"
        }
        debug {
            manifestPlaceholders["appName"] = "@string/app_name_dev"
        }
}

AndroidMenifest.xml

manifestPlaceholders에서 선언한 key("appName")를 replace로 두고 변수를 선언할 수 있습니다.

<application
        tools:replace="label"
        android:label="${appName}"
        ...
>
        ...
</application>

결과물

Last updated