サイトのトップへ戻る

Android Studio ドキュメント 日本語訳

サイト内検索

マニフェストにビルド変数を挿入する

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を設定するを参照してください。