【Unity】androidでAPKを64ビット対応する方法

現在、Google Playでアプリを公開するには64ビット対応されたAPK(or AAB)しか受け付けていません。
公式発表は下記のとおりです。

2019 年 8 月 1 日以降:
  • ネイティブ コードを含むすべての新規アプリとアプリのアップデートを Google Play で公開する際に、32 ビット版に加えて 64 ビット版の提供が必須になります。
  • 延長期間:Unity 5.6 以前を使っている既存のゲームの場合、Google Play は 2021 年 8 月まで 32 ビットのみのアップデートを受け入れます。
2021 年 8 月 1 日以降:
  • Google Play は、64 ビット対応端末に対する 64 ビット版のないアプリの提供を停止します。つまり、64 ビット対応端末は、Play Store で 64 ビット版のないアプリを利用できなくなります。
  • これには、Unity 5.6 以前でビルドされたゲームも含まれます。
Google Developersより引用

Unityではデフォルト設定のままだと32ビットにしか対応していませんが、
たった2箇所の設定を変更するだけで、64ビットでビルドできるようになります。
Unityで作ったゲームを Google Play に公開したいのであれば、必ず覚えておく必要があります。

ただし一点罠があるとすれば、Unity 2017.4以上のバージョンでないと64ビット対応ビルドができません。
古いバージョンの場合は、先にUnityのバージョンアップとエラーメッセージのお掃除を済ませておきましょう。

KuroMikanの環境

  • Windows 10 Home Edition
  • Unity 2019.3.7.f1
mac OS版をお使いの場合は、メニュー名などが若干異なりますが手順はWindows版と同じです。


BuildSettingsの設定方法


まずメニューから File > BuildSettings を選択。

android64_1.png

BuildSettingsが開いたら、Player Settings を選択。

android64_2_.png

Playerの項目になっているので、android > Other Settings を選択。

android64_3.PNG

Configuration項目内の、Scripting Backendを MONO → IL2CPP に変更。
Target Architecturesを ARM64 にチェック。

android64_4 .png

これで完了です。


コラム:そもそも64bitアーキテクチャって?

CPUには「32bitプロセッサ」と「64bitプロセッサ」があり、最近発売されたスマートフォンはほぼ64bitプロセッサです。
iPhoneに関してはiPhone5s以降は全て64bitプロセッサだそうです。
64bitプロセッサを利用することで使用できるメモリが増えたり、処理能力が速くなったりなど、パフォーマンスの面で有利に働きます。
androidアプリでこれらの恩恵を受けるためには、64bitプロセッサ用にビルドしておく必要があります。

Unityでは「IL2CPP」という謎の技術によって、C#のソースコードをC++に変換して64bit用のバイナリビルドを行っているそうです。
そのため、基本的に「IL2CPP」のオプションを有効にし、ARM64にチェックを付ければあと勝手に64bitでビルドしてくれます。
ただし、1つのアプリ内に32bitコードと64bitコードが含まれることになるため、それによってビルド時間が伸び、アプリサイズが大きくなるので、一応気にしておきましょう。

なお、Unity2020.1からiOSの32ビットビルドを廃止するようです。
気になる方はUnityのアナウンスをチェックしましょう。

📖このページを見ている方におすすめの書籍📖