iOS应用程序编译为静态库

时间:2013-03-07 19:53:02

标签: ios objective-c static-libraries

我即将为多个客户定制项目。该项目使用CocoaPods和Storyboard。由于我希望修复一些错误并在每个客户端的UI中进行一些更改,我想组织这样的项目: 1.将启动的iOS应用程序转换为已编译的静态库(以某种方式) 2.创建新的自定义应用程序。将其链接到静态库。 3.将原始Storyboard复制到新的自定义应用程序中。

现在,在“新”故事板中,我可以根据客户需求应用更改。 Storyboard引用中作为Custom Class的每个ViewController都有一个在原始应用程序(现在是已编译的静态库)中定义的类。这样我总是可以替换或扩展原始类,并将新的类设置为故事板中我的ViewControllers的自定义类。

这对我来说听起来不错。但我无法让它发挥作用。 1.我设法从原始iOS应用程序创建一个静态库,将项目的辅助目标添加为静态库。在与标题搜索路径,标志和链接框架挣扎之后我编译了它(有很多警告) 2.我创建了一个新项目并链接了静态库但无法编译它。

我的问题是。 我这样做是对的吗? 2.如果我有一个带有相关头文件的静态库,我创建了另一个使用前一个的静态库。如果我想将第二个创建的库用于新项目,我是否必须将它链接到库和头文件?

1 个答案:

答案 0 :(得分:0)

  1. 它应该在理论上起作用,虽然我个人已经走了创建静态框架而不是静态库的路线,因为框架应该更容易链接到,可以为不同的体系结构提供不同的版本,以及包括同一包中的标题。查看此项目是否将Framework项目类型添加到Xcode:https://github.com/kstenerud/iOS-Universal-Framework。 (默认情况下,某人真的需要使用Apple来包含Framework目标类型)

  2. 如果我错了,有人可以纠正我,但就我理解的事情而言:是的,您需要将两个库链接到最终的可执行文件中。针对库1编译库2不会将库1的代码组合到库2中。

  3. 我们需要获得有关编译错误的更多具体信息,以帮助您将静态库链接到新项目中。