最近開発したアプリがapkでビルドした時に100MB以上になってしまったので、apk+obbファイルの形式でアプリをリリースする事になりました。
apk+obbファイルを生成する方法は以前紹介した通り簡単に作成できますが、どうもAndroid10やAndroid11端末でobbがうまく読まれないという現象が多数発生したので、abbファイルを作成する事にしました。
今回は、apk+obbファイル方式の厄介な点の紹介と、abbファイルの作成方法やメリット・デメリット等をまとめておければと思います。
apk+obbファイル方式は問題が起きやすい
apk+obbファイルの方式でアプリをリリースしてみて、Android10やAndroid11端末で読み込み時にエラーが発生する傾向が見られました。以前Android11対応時に遭遇した現象と同じようなものです。
ざっくりとまとめると、内容としては以下のような感じです。
- アプリ起動後画面が真っ黒のまま先へ進めない(Android11端末)
- 1つ目のシーンだけしかプレイできない(obbが正しく読み込めない?)
- Android9.0以下の端末では問題なくプレイ可能
- Unityで「Build and Run」だとおかしくなるが、GooglePlay経由でインストールすると問題なくプレイ可能(おかしくなる場合もあり)
- obbファイルを利用しているアプリでも、毎回普通にプレイできるものと、動作が不安定なものがある
上記の問題への対処としては以下のことを行いました。
- Unity obb Down Loaderを導入
- READ_EXTERNAL_STORAGEをマニフェスト に追加してみた(obbファイル生成時はUnityが自動で追加してくれるらしいけど一応)
- Android Studioでログをチェック(エラー原因っぽいものは見当たらなかった)
丸一日くらい試行錯誤してみましたが、どうも動作が不安定なことや、ネットを調べると、大手企業の出しているアプリでもobbファイル関連の問題が結構出てくるので、obbファイルを使わない方向で行くことにしました。
2021年8月からapk+obbファイル方式はGoogle Playで配信できなくなる
Googleのリリースによると、2021年8月からobbファイルはサポート対象外になるそうです。apkを使わず、Android App Bundle(abb)形式で公開することが必須になるそうです。
まあ、obbは動作が不安定で問題も結構あったということもあり、obbがサポートされなくなったのはよかったです。
また、apkの場合は100MBの制限でしたが、Android App Bundle(abb)形式の場合、150MBまで引き上げられるので、apkでギリギリ100MB超えちゃうって人はAndroid App Bundle(abb)形式にすれば問題解決できそうですね。
Android App Bundle (abbファイル)を作成する方法
Android App Bundle(abb)形式でビルドする方法ですが、やってみたらめっちゃ簡単でした。UnityのPlayerSettingでBuild App Bundle(GooglePlay)にチェックを入れてビルドするだけです。
apkでビルドするよりもビルドに時間がかかるのがデメリットみたいですが、アプリのサイズ自体はapkよりも抑えることができるらしいので、開発段階ではapkで開発メンバーに共有して、リリース段階でabbにするというのがよさそうですね。
Android App Bundle は150MBまでしかGooglePlayにアップロードできない
abbのサイズが150MB以上のアプリをGoogle Playにアップロードしたところ、以下のエラーが出てアップロードに失敗しました。
abbは150MBの制限なのでapkよりはまだマシですが、微妙に超えちゃうアプリが結構あるので、対策する必要があります。
Android App Bundle が150MB以上になる場合の対処法
abbが150MB以上になってしまうアプリに関しては、調べた感じだと、Play Asset Deliveryを使うのが良さそうです。
以前は自前でサーバーを用意してAssets Bundleをアップロードしていたようですが、Play Asset Deliveryは無料で Assets Bundleをアップロードできるらしいです。
とりあえず、現状aabファイルにしてみて150MBになってしまうアプリでPlay Asset Deliveryが使えるか試してみたいと思います。
お知らせ
謎解き推理ゲーム「イラスト探偵」を最近リリースしました!
もしよろしければダウンロードお願い致します!