🆔

[Android] Gradleで設定するapplicationIdを、マニフェストファイルでも使うには

2023/12/29に公開

使い方

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 (ビルド バリアント)

マニフェストファイルでの ${applicationId} の記述について

GitHubで編集を提案

Discussion