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.xml
が manifests
ディレクトリ直下に2つ見えれば取り込み成功。
環境ごとに追加設定を記述する
release のみ設定追加したいため、 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
タブが出来ているのでクリックする。
結合後の成果物を確認できる。
捕捉
buildTypes
前提で話を進めたが、同じ要領でやれば productFalvors
でも対応可能。
追加だけでなく「主流の方の特定属性だけ削除する」など柔軟な対応ができる。
詳細なやり方は参考の (1) を確認お願いしたい。