🆔
[Android] Gradleで設定するapplicationIdを、マニフェストファイルでも使うには
使い方
AndroidManifest.xml
の中で、 ${applicationId}
と書かれたものがビルド後置換されます。
AndroidManifest.xml
<intent-filter ... >
<action android:name="${applicationId}.TRANSMOGRIFY" />
...
</intent-filter>
説明
Androidは、アプリケーションの識別子として application ID (アプリケーション ID)を持ちます。
このIDは一意である必要があります。同じIDがあると、同じアプリとして認識されます。
この性質があるため、開発者の多くは別の環境のアプリを作る場合、複数のIDを複数作ります。
Android開発では、ビルド バリアントを使用してアプリケーション IDを変更することが多いです。
しかし、アプリケーション IDは様々な場所で使われることが多いです。
例えばプッシュ通知を使用する場合、権限名にアプリケーション IDが使われます。
AndroidManifest.xml
<permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
参考
マニフェストファイル AndroidManifest.xml について
application ID - Gradle build.gradle での設定
build variants (ビルド バリアント)
- Configure build variants | Android Studio | Android Developers
- ビルド バリアントを設定する | Android デベロッパー | Android Developers
${applicationId}
の記述について
マニフェストファイルでの - Manage manifest files | Android Developers - Inject build variables into the manifest
- マニフェスト ファイルを管理する | Android デベロッパー | Android Developers - マニフェストにビルド変数を追加する
- Build Variantsで開発版Androidアプリを分ける - ninjinkun's diary
- android - Using ${applicationId} in library manifest - Stack Overflow
Discussion