1. ホーム
  2. ios

ファイルがリンク先のアーキテクチャではないアーカイブ用にビルドされている (i386)

2023-09-12 02:34:32

質問

静的ライブラリを構築することになりました。私は私のiPhoneとiPadのアプリで使用したいと思います。シミュレータを実行しようとすると、リンクエラーが発生します。私はiOSの開発のために新しいです。

ld: 警告: ファイルを無視しています /Users/valuelabs/Desktop/DruvaProject/libraries/libnetUtils.a, ファイル はリンクされているアーキテクチャではないアーカイブ用にビルドされています。 (i386) i386 アーキテクチャでは未定義のシンボルです。

"_OBJC_CLASS_$_netUtils"、から参照されています。 objc-class-ref in ViewController.o ld: symbol(s) not found for architecture i386 clang: エラー: linker command failed with exit code 1 (呼び出しを見るには-vを使用します)

アーキテクチャにi386を追加してみましたが、うまくいきません。

どのように解決するのですか?

この同じ問題と格闘し、ビルド設定の更新、リンカーの検索パスのクリアなど、すべての受け入れられた答えに従った後。私は最終的に、私のために機能する答えを発見しました。

ビルドする前に、iOS Device の代わりに正しいタイプ (iPhone Simulator) を選択することを確認します。その後、再構築します。そうしないと、iOS デバイス (arm プロセッサ) 用に構築されたライブラリを、Mac (i386) 上のシミュレータで使おうとしていることになります。明白であるべきですが、そうではありませんでした。

以前は。

後です。

さて、ナビゲータの製品グループを見て、スタティック ライブラリ (.a ファイル) を右クリックし、Finder で表示すると、Debug-iphonesimulator フォルダではなく Debug-iphoneos にあることがわかります。元々フォルダ名を気にしていなかったので、もっと早く思いついたかもしれません。

これが役立つことを願っています。