AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【Unity】Android版の64bit対応でやるべきこと

developers-jp.googleblog.com

2019 年 8 月 1 日以降:

  • ネイティブ コードを含むすべての新規アプリとアプリのアップデートを Google Play で公開する際に、32 ビット版に加えて 64 ビット版の提供が必須になります。
  • 延長期間: Unity 5.6 以前を使っている既存のゲームの場合、Google Play は 2021 年 8 月まで 32 ビットのみのアップデートを受け入れます。

 Googleによると2019年8月1日以降、Google Playで公開するアプリには64bit対応が必須になるそうです。

最近Google Playにアップしたアプリでも、64bit対応を勧める警告が表示されるようになってしまったので、今のうちに対応しておくことにしました。

今回は、Unityで作ったAndroid版アプリの64bit対応に関する備忘録です。

 

Unityで作ったAndroidアプリを64bit対応させる場合やるべきこと

64bit対応と言っても、やるべきことはそんなにありません。

Unityで作ったAndroidアプリを64bit対応にする場合は、

「Build Settings」>「Other Settings」>「Configuration」>「Scripting Backend」を

「Mono」から「IL2CPP」に変更して、「Target Architectures」の「ARM64」にチェックを入れてビルドすればOKです。

【Unity】Android版の64bit対応でやるべきこと

 

ただし、IL2CPPではビルド時にNDKが必要になるので、NDKをインストールしてUnityでパス設定しないとエラーが出てビルドできません。

【Unity】Android版の64bit対応でやるべきこと

 

あとNDKをインストールする際の注意点として、Unityに指定されたNDKバージョンをインストールすることが重要です。

【Unity】Android版の64bit対応でやるべきこと

対応していないNDKバージョンだと、ビルドエラーが発生したり、ロケーションパスが通りませんでした。(僕の場合はNDK r16bが必要でした)

 

以上の設定でビルドして再度Google Playにapkをアップロードしたら64bit未対応の警告が消えました。

 

【追記】プラットフォームごとに処理が分かれている場合に注意すべきこと

ちなみに、iOSAndroidで処理が分かれている場合などは、64bit対応時のビルドで以下のようなエラーが出る場合があります。

この場合は、指定されたfunctionがiOSのネイティブコードのみに有効なコードが含まれている場合が多いので、「#if UNITY_IOS」で処理をちゃんと分けておいた方が良さそうです。

error: undefined reference to

参考:

Android向けIL2CPPビルド失敗時に2点考えられること - 渋谷ほととぎす通信

 

Androidの64bit対応はこれから必須になるらしいので、早めに慣れておこうと思います。

 

 

関連:

develop.hateblo.jp

develop.hateblo.jp

develop.hateblo.jp