UnityでAndroid App Bundle(AAB)に対応して、2019年8月1日以降の64ビット要件も対応しよう!
2020年1月11日追記
テキスト下部の「 次に「Player Settings…」から 」に画像部分ついて
「x86」に☑が付いていますがこちらは外すようにしてください。
チェックを外すと対応スマホの数は減りますが、微々たるものだと考えられます。
(私の時は1万以上の機種の中で1機種だけでした)
GooglePlayでもアップロード時に警告が出ますが無視で問題ないと考えています。
最終的にこれが
こうなれば
成功です。
追記ここまで
本案件は
「Windows10(64ビット機)」
「Unity 2018.3.7.1f」
を使用しています。
※「メニュー」→「Build Settings…」で
「Build App Bundle」がチェックできるバージョン(2018.3β以降)に
あらかじめ上げておいてください。
2019年2月上旬。
Googleからこんなメールが来ていたと思います。
※Googleの丁寧な日本語版は下記のリンクへ
https://developers-jp.googleblog.com/2019/02/get-your-apps-ready-for-64-bit.html
要約すると
「2019年の8月1日までに64ビットサポートしようぜ!」
である。
これを見た私は
「32ビット機が存在するかあ…( ˘ω˘)」
「私に関係あるの?」
と思っていましたが「アリ」でした。
というのも最近、GooglePlayでアプリを更新すると
64ビット対応の警告が出てきます。
「アプリは出せるが8/1までの命…」みたいな感じです。
更に「Android App Bundle(AAB)」の名前まで出てくるので
この機に一気に対応してみました。
用意① NDKの対応
人によっては設定済みではあると思いますが、
していない人は良い機会ですのでやってみましょう。
まずは下記画像の下部の「NDK」の「DownLoad」。
駄目だった人は下記のリンクから
https://developer.android.com/ndk/downloads/older_releases
「リビジョン16b」の「プラットフォーム」は「Windows64ビット」版の
パッケージを選択してください。
容量は約700MBあります。
ダウンロード後は解凍するのですが、
解凍場所によってはパスの文字数が足りずエラーを起こします。
浅い階層で圧縮ファイルの名前を軽く変更してください。
名前は自由です。
私の場合はこんな感じに名前を短縮しました。
解凍は10分くらいかかります。
※解凍データの置き場所は自由です。
解凍後は先ほどの「NDK」の場所設定をしましょう。
ちなみに「Android Studio」を使うパターンについては罠となります。
理由はNDKのバージョンが新しすぎるから。
(2019/5/19の時点でバージョンはR19b)
「LLDB」と「CMake」は持っててもいいのかもしれません。
※私は最初、こっちで入れてしまいました。
「NDK」は放置するので誤って入れても消す必要はありません。
AndroidによるNDK解説
https://developer.android.com/ndk/guides?hl=ja
用意②ビルド対応
まずはBuild Settings画面で「Build App Bundle(GooglePlay」のチェックを入れて下さい。
※下記の画像ではチェック済みになっています
次に「Player Settings…」から
「Other Settings」の「Configuration」の
「Script Backend」を「Mono」から「IL2CPP」に切り替えてください。
そして、5段ほど下の「Taget Architectures」の「ARM64」に「チェック」を入れてください。
※下記画像では変更済みになっています。
これで準備完了です。
このまま「Build And Run」で10分くらい待ってください。
※初回はものすごく時間がかかります。
2回目以降は3分程度でした。
逆にエラーが出てしまった場合、
「Build」のみで試しにデータのみ作ってみてください。
その後に 「Build And Run」を行ってください。
※私はこのパターンで成功しました
これにて作業完了です。
★効果について
64ビット要件の対応で驚いたことはないのですが、
Android App Bundle(AAB)の影響がすさまじく、
アプリのサイズが半分になってました。
アプリによって節約サイズは変わるようですが、
ユーザーにはありがたい効果だと思いますね。
●参考
アプリを 64 ビット要件に対応させましょう
Unity 2018.3 ベータ版での Android App Bundle(AAB)サポート
NDK アーカイブ
NDK の概要
アプリが 64 ビットデバイスをサポートしていることを確認する
【Unity】64bit対応したはずが「このリリースは Google Play の 64 ビット要件に準拠していません」と表示された
●読み物
Androidアプリバンドルについて
●おもちゃラボ
【Unity2017】IL2CPPを使ってAndroidビルドする方法