build.gradle
ファイル内で定義された AndroidManifest.xml
ファイルに変数を挿入する必要がある場合は、
manifestPlaceholders
プロパティを使って行います。
以下で示すように、このプロパティはキーと値の組み合わせを紐付けした形式で値を設定します。:
android {
defaultConfig {
manifestPlaceholders = [hostName:"www.example.com"]
}
...
}
以下のような属性値を使って、マニフェストファイルにプレースホルダーを設置することができます。:
<intent-filter ... >
<data android:scheme="http" android:host="${hostName}" ... />
...
</intent-filter>
既定では、ビルドツールはアプリのアプリケーション ID も${applicationId}
プレースホルダーに挿入します。
この値は常に、最終的な現在のビルド(ビルドバリアントによる変更を含む)のアプリケーションIDと合致します。
intent actionのような識別子に、ビルドバリアントごとでも重複のない名前空間を使用したい場合にこれは役立ちます。
例えば、 build.gradle
ファイルが以下のような場合:
android {
defaultConfig {
applicationId "com.example.myapp"
}
productFlavors {
free {
applicationIdSuffix ".free"
}
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を設定するを参照してください。