のしメモ アプリ開発ブログ

Unityアプリとかロボットとか作ってるときに困ったこととかメモ

【Unity】iOSの64bit対応についてまとめ

Appleの規約で2015年2月1日以降にアップロードされるiOSアプリに関しては、
64bit対応必須ということで、情報をちょっとまとめました。

◆ 対応必要かどうか表

状況 対応
リリース済みアプリ 対応不要
リリース済みアプリのアップデート 対応不要(6/1以降は必要)
リリース予定アプリ 64bit対応必須

◆ 対応方法

1. 64bit対応のUnityをインストール

ここからダウンロード
http://unity3d.com/unity/qa/patch-releases
Patch 4.6.1p5が対応しているみたいです(※2/5現在)
他にもパッチが追加ででてくると思うので、なるべく最新版推奨。

2. PlayerSettingで設定

Edit->Project Settings->Player
iOSの設定タブを開き
Script Backgroundの設定をMonoからIL2CPPに変更

#2017/08/23追記
また同じPlayerSettingsにある、ArchitectureをARM64、またはUniversalに設定する必要があります。

これでビルドすれば64bit対応されたコードが出力されます。

◆ 64bit化されてどうなったか

・UnityがC++コンパイラを動かしてビルドするようになった
C++に変わったから、基本的なパフォーマンスはあがってるはず
・ユニーバサル(32/64bit対応)だとビルド時間が前より結構長い

◆ 開発者が気をつける点

・64bitの動作が確認できる端末は、CPUがA7以降を搭載されている端末
 (具体的にはiPhone 5S, iPad Air, iPad Mini Retina, iPhone 6, iPhone 6 Plus, iPad Mini 3, iPad Air 2)
・ネイティブプラグインを使用している場合、64bitとの互換性について確認する必要がある
・ネイティブで型変換を行う場合、long型は64bit、int型は32bitのままなので注意
・Unity.NetworkのAPIは64bit対応していない
・ユニバーサルだとバイナリの容量が増えるのでこの辺見て改善必要かも
・大きく変わってプロジェクト固有のバグとかは当然あると思うので、
 何か問題あればバグレポートをUnity社に送る!


以上、何か間違い、指摘等あればコメントください。