27

私は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(2スライス)に必要なアーキテクチャi386がありません)。

警告を無視して、ヘッダーファイルで指定されたクラスをインスタンス化しようとすると、次のエラーが発生します。

ld:警告:ファイル[Path / FileName.a]を無視し、ファイル[Path / FileName.a]に必要なアーキテクチャi386がありません(2スライス)

アーキテクチャi386の未定義のシンボル:

「_OBJC_CLASS_$ _ HRMonitor」、参照元:

ViewController.oのobjc-class-ref

ld:アーキテクチャi386のシンボルが見つかりません

clang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください)

フレームワークの検索パス(他の多くの投稿で義務付けられている)を確認しましたが、それは明らかです。

より詳しい情報:

  1. Xcode4.6.1を使用しています
  2. ファイルは現在、プロジェクトのルートフォルダにあります。
  3. シングルビューアプリケーションのタンプレートを使用しています。

ヘルプに感謝します

4

3 に答える 3

52

この警告は、デバイス(ARM)用に作成されたライブラリをシミュレータ(i386)で使用しようとしていることを意味します。

このターミナルコマンドを使用して、ユニバーサルライブラリを作成できます。

lipo -create lib_arm.a lib_i386.a -output lib_universal.a

リポコマンドの詳細については、こちらをご覧ください。

于 2013-03-27T13:16:26.180 に答える
7

ターゲットの「ビルド設定>アクティブなアーキテクチャのみをビルド」を「いいえ」に変更します

これは、Dmitry Zhukovの答えと同じことをしていますが、後ろを回るのではなく、Xcodeを介して行っています。

于 2014-10-06T16:10:16.327 に答える
4

サードパーティのコードを使用している場合は、一部のSDKがシミュレーターで機能しない可能性があることに注意してください。デバイスでプロジェクトを実行すると、発生したのと同じビルドエラーが消えました。

于 2014-10-02T08:58:09.373 に答える