2013-03-12 6 views
6

現在、私は静的ライブラリを実装する必要があるiOSアプリケーション(iOS 6)を開発中です。スタティックライブラリはiOSシミュレータでエラーを出し、iOSデバイスで動作します

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

しかし、私は私のシミュレータ上でそれを実行しようとしたとき、私の問題は多少の誤差が来ているされています

Target settings

"_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 error console

を私は次のようにターゲット・アーキテクチャを追加しました私は多くを検索しましたが、ソリューションを見つけることができませんでした。私のライブラリがデバイスで作業していて、シミュレータでエラーが発生しています。事前に

私を助けてください、おかげで

+0

i386を削除してもう一度試してください – peko

+0

スタティックライブラリをどのように追加しましたか?あなたが従ったステップは何ですか? –

+0

@ P.J:ライブラリを追加しました。チュートリアルで説明した手順(私はそのリンクを追加しました)。プロジェクトに追加された手段には、ヘッダファイルが含まれ、インポートされました。 –

答えて

5

あなたはpropablyのみデバイスアーキテクチャあなたのライブラリーを構築しています。 iOSシミュレーターはエミュレーターではありません。つまり、Macのアーキテクチャー上でコードを実行する必要があります。これは、ご使用のデバイスのアーキテクチャーとは明らかに異なります。

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

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