2011-12-09 14 views
0

iphoneシミュレータ用にビルドしようとしたときに、私はこのエラーを取得する:プロジェクトはiphoneシミュレータ用にビルドされていません。

d: warning: ignoring file /users/salehshah/SmartSwipe/libANMobilePaymentLib.a, file was built for archive which is not the architecture being linked (i386) Undefined symbols for architecture i386: 

は、私はiOSの5プロジェクトでのXcode 4.2を使用していますが構築され、デバイス上で正常に動作することを注意してください。静的ライブラリをリンクしているときに問題があると思います。アーキテクチャに問題があるかもしれません。

答えて

2

リンクする静的ライブラリは、シミュレータ用にコンパイルされません。これがプリコンパイルされたライブラリの場合、3つのiOSアーキテクチャarmv6 armv7とi386をすべて含むバージョンを作成したいと思うでしょう。個々のアーキテクチャを単独でコンパイルし、リポジトリを使用してそれらをリンクすることでそうすることができます。man lipo

一方、あなたのアプリケーションターゲットの依存としてライブラリをコンパイルしている場合は、ビルド設定に何か問題があります。図書館で図書館の設定を見てみましょう。具体的には、ARCHSVALID_ARCHS

+0

です。これはシミュレータ上でも正常に動作しています。突然それは実行を停止しました。私はプロジェクト設定などを変更しませんでした。 – Saleh

+0

何も変更しなければ、これらの設定を見る必要はありません。あなたはおそらく宇宙線に当たっているでしょう。 ;-)ビルド後にLog Navigator(Cmd-7)を見てください。図書館は建設されていますか?適切なアーキテクチャ(つまりi386)用に構築されていますか? – tonklon

+0

この警告は次のとおりです:ファイルはアーカイブされていて、リンクされているアーキテクチャーではありません(i386) – Saleh