我有几个项目共享许多相同的类和自定义视图/视图控制器,因此我创建了一个自定义静态库,其中包含这些通用类,可直接在我的客户端项目中使用。
这些是我采取的步骤:
我创建并编译了静态库,将生成的 .a 和公共 .h 文件复制到我桌面上的文件夹 (myLib) 中。
我将 myLib 文件夹拖放到我的客户端项目中。我通过引用复制,并没有复制我的客户项目下的物理文件。正如预期的那样,目标的构建阶段“将二进制文件与库链接”阶段自动包含 .a 文件。
我使用客户端项目的故事板引用了 View Contollers。这些类按预期自动完成,因此 Xcode 识别它们的存在。
我在我的客户端项目构建设置和目标构建设置下设置了 -ObjC 和 -all_load 链接器标志。
我成功地清理并构建了客户端项目。
我运行了客户端项目,但自定义视图没有加载,引用了“Interface Builder 文件中的未知类 [myViewController]”。
第6步是我现在面临的问题。以下是一些可能有用的其他观察结果:
在文件检查器中,标题的目标成员资格是空白的;客户项目列在 Target Membership 标题下,但该复选框已禁用且未选中。然而,myLib.a 目标成员资格被选中。
我尝试在客户端项目中创建 myViewController (clientViewController) 的子类,并改为引用此类。当我构建客户端项目时,我收到一个错误:
“警告:找不到选项‘-L/Users/[me]/Desktop/Projects/[clientProject]/[myLib] 的目录;架构 i386 的未定义符号:[clientViewController.o] 中的 [clientViewController]。”