iOS アプリの動的フレームワークを作成しようとしています。Xcode (6) の新しいバージョンのおかげで、新しいプロジェクトを作成するときに Cocoa Touch Framework を選択できるようになり、集約ターゲットを追加したり、スクリプトを実行したりして作成する必要がなくなりました。フレームワークを構築するときに問題はありません。しかし、iOS アプリ内で使用しようとすると、アーキテクチャの問題が発生します。
ld: warning: ignoring file /Library/Frameworks/MyFramework.framework/MyFramework, file was built for x86_64 which is not the architecture being linked (arm64): /Library/Frameworks/MyFramework.framework/MyFramework
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_MyFrameworkWebService", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: warning: ignoring file /Library/Frameworks/MyFramework.framework/MyFramework, file was built for x86_64 which is not the architecture being linked (armv7): /Library/Frameworks/MyFramework.framework/MyFramework
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_MyFrameworkWebService", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
フレームワーク プロジェクトとターゲットの設定を変更しようとしました (アーキテクチャ & 有効なアーキテクチャのみをビルド & 有効なアーキテクチャ)。iOS アプリ プロジェクトに対して同じことを行いましたが、何も機能しません。わからないことがあったと思います。
たとえば、コマンド ライン「xcrun lipo -info MyFramework」を使用して i386 (iOS シミュレーター) チェックのみのフレームワークをビルドすると、次のような問題が発生します。
ld: 警告: ファイル /Library/Frameworks/MyFramework.framework/MyFramework を無視します。ファイルは、リンクされているアーキテクチャではない x86_64 用にビルドされました (i386)...
誰かが、シミュレータを含むすべての iOS アーキテクチャで動作するフレームワークを取得するのを手伝ってくれたら.