Unityで生成したXcodeで64bitビルドを行うとNativeのC++でApple Match -O Linker Error
発生している問題・エラーメッセージ
Unityから生成したXcodeでビルドするとリンカエラーが発生し解決できずに悩んでおります。
もともとAppStoreでリリース済みのアプリで32bitでビルドはできておりますが、64bitの審査が義務付けられたことによって今回アップデートのタイミングで64bit対応アプリをリリースする必要があります。
ただ、以下の手順で64bitビルドを行うと大量のリンカエラーが発生しビルドが通らない状況です。
【エラー内容】
Undefined symbols for architecture arm64:
"_UP_SKView_presentScene_transition_", referenced from:
_SKView_UP_SKView_presentScene_transition__m20915 in Bulk_U3DXTSpriteKit_0.o
(maybe you meant: _SKView_UP_SKView_presentScene_transitionm20915, _SKView_UP_SKView_presentScene_transitionm20915_MethodInfo )
"_UP_SKView_convertPoint_toScene_", referenced from:
_SKView_UP_SKView_convertPoint_toScene__m20913 in Bulk_U3DXTSpriteKit_0.o
(maybe you meant: _SKView_UP_SKView_convertPoint_toScenem20913, _SKView_UP_SKView_convertPoint_toScenem20913_MethodInfo )
"_UP_SKView_set_showsNodeCount", referenced from:
_SKView_UP_SKView_set_showsNodeCount_m20911 in Bulk_U3DXTSpriteKit_0.o
(maybe you meant: _SKView_UP_SKView_set_showsNodeCount_m20911, _SKView_UP_SKView_set_showsNodeCount_m20911_MethodInfo )
・・・以下MAX200件エラーが出てビルドが止まります。
Classes/NativeのC++ソースの生成オブジェクトでリンクエラーが発生している模様です。
環境
- Unity:v4.6.5f1
- Xcode: 6.4
Unityの設定
下記の設定で64bitビルド用のプロジェクト生成
- File > Build Settings... ➡︎ iOS > Player Settings...
- Scripting Backend:IL2CPP
- Architecture:universal
Xcodeの設定
- Targets > Build Settings
- Architectures:Standard architectures(armv7, arm64)- $(ARCHS_STANDARD)
- Build Active Architecture Only:No
- Valid Architectures:arm64 armv7s armv7
備考
- armv7のみ(32bti)でビルドするとビルドが完了し、正常にアプリが動作することは確認しました。
リンカエラーが発生しているのは生成したNativeのC++ソースのオブジェクトです。
Unity側は以下のような64bitビルド用設定記事を参考に対応しました。
UnityのiOS 64bitビルド
どなたか思いたることがあれば些細なことで構いませんのでご回答頂けると助かります。