私はXcodeとIphoneの開発に非常に慣れていないため、次の問題に遭遇しました。
新しいプロジェクトを開き、*。hファイルと* .aファイル(特定のデバイスベンダーから受け取ったもの)を追加しました。次の警告が表示されます。
ld:警告:ファイル/ Users/udi/Desktop/Xcode/Xcode Projects/Scosche/libmyTrekSDK_armv7.aを無視します。ファイル/ Users/udi/Desktop/Xcode/Xcode Projects/Scosche/libmyTrekSDK_armv7.aに必要なアーキテクチャi386がありません(2スライス)
警告を無視して、ヘッダーファイルで指定されたクラスをインスタンス化しようとすると、次のエラーが発生します。
ld:警告:ファイル[Path/FileName.a]を無視しています。ファイル[Path/FileName.a]に必要なアーキテクチャi386がありません(2スライス)
アーキテクチャi386の未定義のシンボル:
「_OBJC_CLASS _ $ _ HRMonitor」、以下から参照:
viewController.oのobjc-class-ref
ld:アーキテクチャi386のシンボルが見つかりません
clang:エラー:リンカーコマンドが終了コード1で失敗しました(-vを使用して呼び出しを確認してください)
(他の多くの投稿で述べられているように)フレームワーク検索パスをチェックしましたが、それは明らかです。
より詳しい情報:
助けに感謝
この警告は、デバイス(ARM)用に作成されたライブラリをシミュレータ(i386)で使用しようとしていることを意味します。
次の端末コマンドを使用して、ユニバーサルライブラリを作成できます。
lipo -create lib_arm.a lib_i386.a -output lib_universal.a
lipoコマンドの詳細情報 ここ 。
ターゲットの「ビルド設定>アクティブなアーキテクチャのみをビルド」を「いいえ」に変更します
これはDmitry Zhukovの答えと同じことをしていますが、Xcodeを介して行うのではなく、Xcodeを介して行います。
サードパーティのコードを使用している場合は、一部のSDKがシミュレータで機能しない可能性があることに注意してください。デバイスでプロジェクトを実行すると、同じビルドエラーが発生しなくなりました。