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 Simulator 不是模拟器,这意味着代码需要能够在您的 Mac 架构上运行,这显然与您设备的架构不同。

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

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

于 2013-03-12T09:33:42.457 回答