1
0

More than 1 year has passed since last update.

AndroidManifest.xml をビルド環境ごとに使い分ける(結合する)

Posted at

AndroidManifest.xml は

  • 主流の方 ( src/main/AndroidManifest.xml ) を
  • 環境ごとの AndroidManifest.xml に結合してビルドできる

本記事では、release の buildTypes のみ下部設定値を追加する(結合する)例を記述する。

    <application>
        <meta-data
            android:name="serial_code"
            android:value="serial_code_1234" />
    </application>

手元の環境

  • Android Studio 2020.3.1
  • gradle 7.0.3
  • JDK 1.8
  • Windows 11(21H2)
  • Android SDK
    • compile, target, min 共に 28

(1) 環境ごとに AndroidManifest.xml を定義する

{プロジェクト名}/app/src 配下を次のように構成する。

{プロジェクト名}/app/src
├─main
│  └ AndroidManifest.xml
.
.
├─release
   └ AndroidManifest.xml << 新規で作るか、main からコピーしてくる

目的のディレクトリ ( release ) 直下に、AndroidManifest.xml を作成する。

面倒な場合は app/src/main 直下にあるものをコピーしてくる。

配置が終わったら、buildVariants 切替やプロジェクトを同期をする。

( [Project] タブ > app を右クリック > Reload from Disk )

AndroidManifest.xmlmanifests ディレクトリ直下に2つ見えれば取り込み成功。

01_sync.png

環境ごとに追加設定を記述する

release のみ設定追加したいため、 app/src/release/AndroidManifest.xml を以下のように記述する。

app/src/release/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android">
    <application>
        <meta-data
            android:name="serial_code"
            android:value="serial_code_1234" />
    </application>
</manifest>

プロジェクトタブから AndroidManifext.xml をクリック後、MergedManifest タブが出来ているのでクリックする。

結合後の成果物を確認できる。

02_before_merge_am.png

捕捉

buildTypes 前提で話を進めたが、同じ要領でやれば productFalvors でも対応可能。

追加だけでなく「主流の方の特定属性だけ削除する」など柔軟な対応ができる。

詳細なやり方は参考の (1) を確認お願いしたい。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0