以前は、Unity 出力 Xcode プロジェクトを問題なくビルドして実行できました。しかし、Apple が iOS アプリの 64 ビット サポートを要求するようになったため、Unity で次の変更を行う必要があります。
Build settings -> Player settings -> Other settings -> Scripting backend -> IL2CPP
Build settings -> Player settings -> Other settings -> Architecture -> Universal
現在の問題は、デバイスで Xcode プロジェクトを正常にビルドおよび実行できないことです。私はこれApple Mach-O linker error
まで得られなかったものを得ています。
Xcodeから取得したエラーは次のとおりです。
ld: warning: directory not found for option '-F-F/Users/user/Desktop/qwer/Frameworks/Plugins/IOS'
ld: warning: directory not found for option '-F"/Users/user/Desktop/qwer/../../Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK"'
duplicate symbol l082 in:
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(FMDatabase.o)
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(VungleAdViewController.o)
duplicate symbol l084 in:
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(VungleVideoPlayer.o)
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(VungleAdViewController.o)
ld: 2 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
私が観察したところ、VungleSDK
場所に何かあるように見えますか? 上記以外に変更を加えていないので、これは私にとって奇妙です。
この問題を解決する方法を知っている人はいますか?
また、サイドノート:アーキテクチャに切り替えるときにコンパイル時間が遅くなった人はいIL2CPP
ますか? Universal
私はすでに Xcode ビルドをRelease
(誰かがオンラインで提案したように) に切り替えましたが、今でもそうです。コードのコンパイルには非常に時間がかかります。IL2CPP と Universal に切り替えるまでに 10 秒もかかりませんでした
Chartboost
更新: アプリで、AdColony
、およびを使用していることに言及する必要がありVungle
ます。いくつか実験を行ったところ、Xcode プロジェクトからリンカー フラグ-ObjC
と-fobjc-arc
リンカー フラグを削除すると、Mach-O リンカー エラーが修正され、正常にビルドおよび実行できることがわかりました。私が得ていたwarning: directory not found for option
ものはまだそこにありましたが、それでもコンパイルして正常に実行され、すべての機能がアプリで完全にChartboost
機能していました。Vungle
AdColony
SDK で必要なため、最初にこれらのリンカー フラグを用意しました。しかし、それらを削除すると、私のアプリで AdColony が機能しなくなりました。したがって、それはきれいな解決策でもありません。
これにより、AdColony
ユニティ プラグインが Universal/ARM64 アーキテクチャのサポートに問題を抱えている可能性があるか、-ObjC
リンカー フラグが Universal/ARM64 アーキテクチャへのビルドに対応していないかの 2 つが考えられます。
誰かがこの紛らわしい問題に光を当てることができれば幸いです。
ありがとう