閉じる

Play Asset Deliveryと productFlavors

productFlavorsでアプリの仕様を切り替える延長線で Assetも切替可能かと以下のように書いてみる。

9347-0.gradle
productFlavors {
hoge {
assetPacks = [":asset_hoge"]
}
funi {
assetPacks = [":asset_funi"]
}
}

結論から言えば、最後に書いた assetPacks指定(この場合は asset_funi)だけが有効になり、他は無視されて残念なことに。
将来的に改善されることを願い、今力技で対処を。
以下のように記述してやって、「gradlew :app:bundleHogeRelease -PPADhoge」ってな感じで .aabを作ってやると必要な asssetを組み込んでくれる。

9347-1.gradle
if (false) {
} else if (project.hasProperty("PADhoge")) {
assetPacks = [":asset_hoge"]
} else if (project.hasProperty("PADfuni")) {
assetPacks = [":asset_funi"]
} else {
assetPacks = [":asset_hoge", ":asset_funi"]
}

個別の指定だけでも良いのだけど、指定をしないときに asset_hogeの中身と asset_funiの中身がユニークになるようにした上で両方を入れてやることで Android Studioからは productFlavorsの切り替えだけで hoge/funiそれぞれのデバッグ時でも必要な assetにアクセス可能に。

2021/12/21追記

結局の所、productFlavorsからマルチ appモジュールへ移行すべきなのかもしれない。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)