静态库在iOS模拟器上发生错误,并在iOS设备上运行

目前我正在开发一个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错误控制台

我添加了如下目标架构:

目标设置

我search了很多,但找不到解决scheme,为什么我的库正在设备上,并在模拟器上给错误。

请帮助我,提前感谢

您已经build立了适用于设备架构的库。 iOS模拟器不是模拟器,这意味着代码需要能够在Mac的架构上运行,这与您的设备架构明显不同。

由于库是预编译的(针对特定的体系结构),因此在您的项目中使用它时,它所组成的代码将不会再次编译为当前目标。 这就是为什么你需要为两个架构build立你的图书馆的原因。

这个答案解释了如何将两个库构build成一个方便的“胖文件”。