我有几个项目共享许多相同的类和自定义视图/视图控制器,因此我创建了一个自定义静态库,其中包含可直接在我的客户端项目中使用的这些公共类。
这是我采取的步骤:
我创建并编译了静态库,将生成的.a和public .h文件复制到桌面上的文件夹(myLib)。
我将myLib文件夹拖放到我的客户端项目中。我通过引用复制,并没有复制我的客户端项目下的物理文件。目标的构建阶段“链接二进制文件库”阶段自动包含.a文件,如预期的那样。
我使用故事板为客户端项目引用了View Contollers。这些类按预期自动完成,因此Xcode识别它们的存在。
我在客户端项目构建设置和目标构建设置下设置了-ObjC和-all_load链接器标志。
我成功清理并构建了客户端项目。
我运行了客户端项目,但没有加载自定义视图,引用了“Interface Builder文件中的未知类[myViewController]”。
第6步是我现在面临的问题。以下是一些可能有用的其他观察结果:
在文件检查器中,标头的目标成员资格为空;客户端项目列在“目标成员资格”标题下,但复选框已禁用且未选中。但是,选择了myLib.a目标成员资格。
我尝试在客户端项目中创建myViewController(clientViewController)的子类,并引用此类。当我构建客户端项目时,我收到一个错误:
“警告:找不到选项'-L / Users / [me] / Desktop / Projects / [clientProject] / [myLib]的目录;架构i386的未定义符号:[clientViewController.o]中的[clientViewController]。”
答案 0 :(得分:0)
构建时的模拟器选项,看起来像你错过了。只需使用它。这是一个通用框架,就像制作一个普通的库一样容易: iOS-Universal-Framework
另请阅读本文:How to create universal static libraries on Xcode 4: the traditional way