(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

Unityで開発したAndroidアプリが50MBを超えた時の対処法【Unity】【Android】


このエントリーをはてなブックマークに追加

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]にチェックを入れる。

f:id:kan_kikuchi:20141220124203p:plain

これだけでBuild時にapkは50MBに抑えられ、別途oddファイルも作成してくれます!
なお、シーンが一つだけだと分割されないとの噂も…


apkとoddのアップロード

oddのアップロードはapkをアップロードした後に表示される画面で行います。

f:id:kan_kikuchi:20141220133618p:plain

f:id:kan_kikuchi:20141220133628p:plain


これでアップロード完了です!


アップロードだけじゃアカン

ただし、ここで一つ問題が…
アプリダウンロード時にapkだけダウンロードして、oddファイルをダウンロードしないという状況が発生するのだとか(容量の都合などで)。
しかも、それでダウンロード失敗とならず、oddファイルがダウンロードされているかのチェックをアプリ側でやらなければならないらしい!!
め、めんどくさい…


Google Play Obb Downloader

oddファイルがダウンロードされているか、またされていない場合はダウンロードをするという処理を簡単にやるアセットがGoogle Play Obb Downloaderになります

なお、リリース前でもGooglePlayにoddファイルを上げておけばテスト出来るようです.

しかし、今回うまく実装出来なかったので諦めました!!
一応、うまくいかなかったやり方を以下に記載しておきます。

Google Play Obb Downloader の使い方(?)

Google Play Obb Downloaderをアセットストアからダウンロードし、インポートしたら
[Plugins]-[Android]にあるGooglePlayDownloader.csにPublic Keyを登録します。

f:id:kan_kikuchi:20141220151219p:plain

//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]-[このアプリのライセンスキー]という所に記載されています。

f:id:kan_kikuchi:20141220151544p:plain

次にobbのダウンロード処理ですが、以下のようにしました。


参考 Tutorial Unity 4 apk splitting into OBB for google play | Développeur HTML5/PHP/Unity3D/Flash Freelance - Lille / Paris

ダウンロード処理用のシーンを作成し、そのシーンを一番最初に表示するようにします。
そして上記のスクリプトをカメラなどにアタッチし、ダウンロードを行ったのちゲームを開始するようにしました。

download failed because the resources could not be found

実機で動かした時に上記のようなエラーが表示されダウンロード出来ませんでした。
アップロードされたファイルが反映されていなかったり、実機のアカウントが開発者アカウントまたはテストアカウントでない場合にも上記のエラーが出るようですが、どちらにも該当せず…断念!

おわりに

apkだけダウンロードされるという状況がそうそう起こるわけじゃないらしいので、とりあえず今回は追加ダウンロードは諦めました…誰か教えてください(ヽ´ω`)
まぁなんにせよ、50MBを越えないように心掛けようと思ったけど、次のやつも確実に超える!というか超えてる!!ナンテコッタ