Androidアプリの容量制限
Androidではapkファイルが50MB以内でないと配信できません。
では50MBを超えた場合はどうするのかというと、apkファイルとは別にoddファイルを作成し、そちらに50MBを超えた分を配置(?)しなければいけないようです。
Unityでのファイル分割
なんと、Unityではこのapkとoddファイルの分割を自動で行ってくれます。
方法は以下の通りです。
1.[File]-[Build Settings]でBuild Settingsウィンドウを開く
2.Androidを選択。切り替えられていなければ[Swithch Platform]をする。
3.[Player Settings]を押し、Player Settingsウィンドウを開く
4.[Publishing Settings]-[Split Application Binary]にチェックを入れる。
これだけでBuild時にapkは50MBに抑えられ、別途oddファイルも作成してくれます!
なお、シーンが一つだけだと分割されないとの噂も…
apkとoddのアップロード
oddのアップロードはapkをアップロードした後に表示される画面で行います。
これでアップロード完了です!
アップロードだけじゃアカン
ただし、ここで一つ問題が…
アプリダウンロード時にapkだけダウンロードして、oddファイルをダウンロードしないという状況が発生するのだとか(容量の都合などで)。
しかも、それでダウンロード失敗とならず、oddファイルがダウンロードされているかのチェックをアプリ側でやらなければならないらしい!!
め、めんどくさい…
Google Play Obb Downloader
oddファイルがダウンロードされているか、またされていない場合はダウンロードをするという処理を簡単にやるアセットがGoogle Play Obb Downloaderになります
http://u3d.as/content/unity-technologies/google-play-obb-downloader/2Qq
なお、リリース前でもGooglePlayにoddファイルを上げておけばテスト出来るようです.
しかし、今回うまく実装出来なかったので諦めました!!
一応、うまくいかなかったやり方を以下に記載しておきます。
Google Play Obb Downloader の使い方(?)
Google Play Obb Downloaderをアセットストアからダウンロードし、インポートしたら
[Plugins]-[Android]にあるGooglePlayDownloader.csにPublic Keyを登録します。
//REPLACE THIS WITH YOUR PUBLIC KEY を消してPublic Keyを入力します。 dl_service.SetStatic("BASE64_PUBLIC_KEY", "REPLACE THIS WITH YOUR PUBLIC KEY");
肝心のPublic Keyですが Google Playの[サービスとAPI]-[このアプリのライセンスキー]という所に記載されています。
次にobbのダウンロード処理ですが、以下のようにしました。
参考 Tutorial Unity 4 apk splitting into OBB for google play
ダウンロード処理用のシーンを作成し、そのシーンを一番最初に表示するようにします。
そして上記のスクリプトをカメラなどにアタッチし、ダウンロードを行ったのちゲームを開始するようにしました。
download failed because the resources could not be found
実機で動かした時に上記のようなエラーが表示されダウンロード出来ませんでした。
アップロードされたファイルが反映されていなかったり、実機のアカウントが開発者アカウントまたはテストアカウントでない場合にも上記のエラーが出るようですが、どちらにも該当せず…断念!
おわりに
apkだけダウンロードされるという状況がそうそう起こるわけじゃないらしいので、とりあえず今回は追加ダウンロードは諦めました…誰か教えてください(ヽ´ω`)
まぁなんにせよ、50MBを越えないように心掛けようと思ったけど、次のやつも確実に超える!というか超えてる!!ナンテコッタ