6

現在、静的ライブラリを実装する必要がある iOS アプリケーション (iOS 6) に取り組んでいます。

このチュートリアルを使用して、静的ライブラリを正常に実装しました。そして、静的ライブラリを他のプロジェクトに追加し、アプリをiPhoneにインストールしました!. 正常に動作しています。

しかし、私の問題は、シミュレーターで実行しようとしたときに、いくつかのエラーが発生することです:

 "_OBJC_CLASS_$_MMPAlert", referenced from:
      objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Xcode エラー コンソール

次のようなターゲット アーキテクチャを追加しました。

ターゲット設定

よく検索しましたが、解決策が見つかりませんでした。ライブラリがデバイスで動作し、シミュレータでエラーが発生する理由です。

助けてください、事前に感謝します

4

1 に答える 1

5

おそらく、デバイス アーキテクチャ専用のライブラリを構築しました。iOS シミュレーターはエミュレーターではありません。つまり、デバイスのアーキテクチャーとは明らかに異なる Mac のアーキテクチャーでコードを実行できる必要があります。

ライブラリは (特定のアーキテクチャ用に) プリコンパイルされているため、それを構成するコードは、プロジェクトで使用すると、現在のターゲット用に再度コンパイルされることはありません。これが、最初に両方のアーキテクチャ用にライブラリを構築する必要がある理由です。

This SO Answerでは、2 つのライブラリ ビルドを 1 つの便利な「ファット ファイル」にバンドルする方法について説明しています。

于 2013-03-12T09:33:42.457 に答える