UnityでAndroid App Bundle(AAB)に対応して、2019年8月1日以降の64ビット要件も対応しよう!

本案件は
 「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 ビットデバイスをサポートしていることを確認する

●読み物
Androidアプリバンドルについて

おもちゃラボ
【Unity2017】IL2CPPを使ってAndroidビルドする方法

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA