はじめに
AndroidのアプリをGoogle Play Storeに上げる時、100MBの制限があります。
それ以上のサイズになる場合、APKとOBBという二つのデータに分けることで解決できます。
そのやりかたを書いておきます。
Unityでビルド時にデータを分ける方法
Player Settingsの Publishing Settingsの中にあるSplit Application Binaryにチェックを入れるだけでいけます。
これで書き出すとデータが.apkと.obbの二つあるのが確認できます。
OBBの方は、(書き出し名).main.obbにとなっています。
データの分割について
データの分割のされ方は以下の通りです。Unityドキュメントより抜粋。
APK - 実行ファイル (Java とネイティブ)、プラグイン、スクリプト、最初のシーン (インデックス 0) のデータから構成されます。
OBB - 上記以外のすべて。残りのシーンすべて、リソース、ストリーミングアセットを含みます。
APKに最初のシーンを含むので、最初のシーンで100Mを超えるような内容にしてしまうと(たとえば100Mを超える動画を使用するなど)結局100M超えのAPKが出来上がってしまうのでGoogle Play Storeの100M制限に引っかかってしまいます。
手動でインストールする
Unityからの場合、Build and Runでこれらのデータを自動的に端末のそれぞれ必要な場所にインストールしてくれます。
が、手動で入れようとした場合少しややこしいです。
APKは
$ adb install -r App.apk
でインストールできます。
OBBはファイルの名前や配置する場所が決まっていて、以下のように配置する必要があります。
$ adb push App.main.obb /storage/emulated/0/Android/obb/ (Package Name)/main.(Bundle Version Code).(Package Name).obb
ここにある(Package Name)や(Bundle Version Code)はUnityのPlayer SettingsのOther Settingsの中にあるものです。確認して入れましょう。
パーミッション
AndroidでOBBファイルを読み込むときに、READ_EXTERNAL_STORAGEのパーミッションがないと読み込みができない場合があるみたいです。
UnityではSplit Application Binaryにチェックを入れた時点でその権限を自動で追加してくれるので、あまり気にしなくても良いですが、一応。
GooglePlayStoreにアップロードする
Google Play Storeにアップロードするときは、OBBは拡張ファイルとしてアップロードします。
まずAPKをドラッグアンドドロップでアップロードしたあと、アップしたAPKのところに「+」マークがあります。
「+マーク」を押すと、拡張ファイルを選択できるウィンドウがでてくるので、そこからOBBを選択します。
アップしたOBBファイルはアップしたAPKの詳細で確認できます。
ここで注意なのですが、Unityは必ずアプリのビルド番号を用いてOBBファイルを開こうとするみたいです。なので、Google Play Storeで新しいリリースを生成する時に、過去のOBBファイルを選択してしまうとアクセスできなくなります。気をつけましょう。