매니페스트에 빌드 변수 삽입

build.gradle 파일에 정의된 AndroidManifest.xml 파일로 변수를 삽입해야 한다면 manifestPlaceholders 속성을 사용하면 됩니다. 이 속성은 아래와 같이 키-값 쌍의 맵을 사용합니다.

Groovy

android {
    defaultConfig {
        manifestPlaceholders = [hostName:"www.example.com"]
    }
    ...
}

Kotlin

android {
    defaultConfig {
        manifestPlaceholders["hostName"] = "www.example.com"
    }
    ...
}

그런 다음 자리표시자 중 하나를 아래와 같이 속성값으로 매니페스트 파일에 삽입할 수 있습니다.

<intent-filter ... >
    <data android:scheme="https" android:host="${hostName}" ... />
    ...
</intent-filter>

기본적으로 빌드 도구는 ${applicationId} 자리표시자에 앱의 애플리케이션 ID도 제공합니다. 이 값은 항상 현재 빌드의 최종 애플리케이션 ID와 일치합니다(빌드 변형에 따른 변경사항 포함). 빌드 변형 사이에서도 인텐트 작업과 같이 식별자에 고유한 네임스페이스를 사용하려고 할 때 유용합니다.

예를 들어 build.gradle 파일은 다음과 같습니다.

Groovy

android {
    defaultConfig {
        applicationId "com.example.myapp"
    }
    productFlavors {
        free {
            applicationIdSuffix ".free"
        }
        pro {
            applicationIdSuffix ".pro"
        }
    }
}

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"
    }
    productFlavors {
        create("free") {
            applicationIdSuffix = ".free"
        }
        create("pro") {
            applicationIdSuffix = ".pro"
        }
    }
}

매니페스트에 애플리케이션 ID를 다음과 같이 삽입할 수 있습니다.

<intent-filter ... >
    <action android:name="${applicationId}.TRANSMOGRIFY" />
    ...
</intent-filter>

'free' 제품 버전을 빌드하는 경우 매니페스트는 다음과 같습니다.

<intent-filter ... >
   <action android:name="com.example.myapp.free.TRANSMOGRIFY" />
    ...
</intent-filter>

자세한 내용은 애플리케이션 ID 설정을 참조하세요.