静态库在iOS模拟器上出错,适用于iOS设备

时间:2013-03-12 08:53:13

标签: ios ios-simulator static-libraries

目前我正在开发一个iOS应用程序(iOS 6),我需要在其中实现一个静态库。

我使用此tutorial成功实现了静态库。我成功地将静态库添加到其他项目并将应用程序安装到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 error console

我添加了目标架构,如:

Target settings

我搜索了很多但找不到解决方案,为什么我的库在设备上工作并在模拟器上出错。

请提前帮助我

1 个答案:

答案 0 :(得分:5)

您只为设备架构构建了库。 iOS模拟器不是模拟器,这意味着代码需要能够在Mac的架构上运行,这显然不同于您设备的架构。

由于库是预编译的(对于特定的体系结构),一旦在项目中使用它,它所包含的代码就不会再为当前目标编译。这就是为什么您需要首先为两种体系结构构建库。

This SO Answer解释了如何将两个库构建捆绑成一个方便的“胖文件”。