0

我有几个项目共享许多相同的类和自定义视图/视图控制器,因此我创建了一个自定义静态库,其中包含这些通用类,可直接在我的客户端项目中使用。

这些是我采取的步骤:

  1. 我创建并编译了静态库,将生成的 .a 和公共 .h 文件复制到我桌面上的文件夹 (myLib) 中。

  2. 我将 myLib 文件夹拖放到我的客户端项目中。我通过引用复制,并没有复制我的客户项目下的物理文件。正如预期的那样,目标的构建阶段“将二进制文件与库链接”阶段自动包含 .a 文件。

  3. 我使用客户端项目的故事板引用了 View Contollers。这些类按预期自动完成,因此 Xcode 识别它们的存在。

  4. 我在我的客户端项目构建设置和目标构建设置下设置了 -ObjC 和 -all_load 链接器标志。

  5. 我成功地清理并构建了客户端项目。

  6. 我运行了客户端项目,但自定义视图没有加载,引用了“Interface Builder 文件中的未知类 [myViewController]”。

第6步是我现在面临的问题。以下是一些可能有用的其他观察结果:

  • 在文件检查器中,标题的目标成员资格是空白的;客户项目列在 Target Membership 标题下,但该复选框已禁用且未选中。然而,myLib.a 目标成员资格被选中。

  • 我尝试在客户端项目中创建 myViewController (clientViewController) 的子类,并改为引用此类。当我构建客户端项目时,我收到一个错误:

    “警告:找不到选项‘-L/Users/[me]/Desktop/Projects/[clientProject]/[myLib] 的目录;架构 i386 的未定义符号:[clientViewController.o] 中的 [clientViewController]。”

4

1 回答 1

0

构建时的模拟器选项,看起来你错过了。就用这个。这是制作一个通用框架就像制作一个常规库一样容易: iOS-Universal-Framework

另请阅读这篇文章:如何在 Xcode 4 上创建通用静态库:传统方式

于 2013-02-11T03:18:02.563 回答