与依赖的iOS框架(iOS framework with dependencies)

2019-07-17 22:21发布

我已经创建了两个iOS的.frameworks

他们都完全编译

我的结构如下:

iPadProject
  - framework1
     - framework2

所以Framework2包含在框架1和框架1包括在实际的iPad项目

所以我的问题是,如果我同时添加框架1和framework2到我iPadProject它不能编译,因为它的抱怨从framework2重复的符号(因为它已经包含在框架1这是合乎逻辑的)

但是,如果我只包括框架1到我iPadProject当我从框架1,在轮到他访问从framework2访问方法的方法,崩溃与“信号SIGABRT”应用

Answer 1:

不要窝静态库,包括iOS框架。 正如你所看到的,它会导致大问题(它会导致更多问题时,每两个框架都有自己的第三个版本)。 链接的最后一步应该链接所需的所有库; 静态库不应该链接到其他的静态库。 还有就是自动化这个真的没有好办法; 它只是成为框架文件的一部分。

你不应该得到运行时异常,虽然未能链接的框架。 你应该得到的链路故障时,指示该符号没有定义。 如果你得到一个崩溃,这表明你做你的连接一些奇怪的事情。



Answer 2:

问题是,因为它是现在嵌套,链接器链接到F2 F1 - 但是,这是由F1只需要f2的部分。

喜欢

F2具有5个符号(f2_1 - 5)
F1采用f2_1和f2_2但不是3,4,5
=>接头抛出它远

现在的应用程序需要f2_3,f2_4和f2_5,但它们不存在...但没有人知道,在编译时。


现在您尝试通过链接再次F2的应用程序,但因为没人以前在编译时间来解决它的链接优化了f2_3 - 5,他们被认为是F1中,因此是重复的!


已经提到解决这个罗布纳皮尔的方式。 不要窝框架 (主要不是静态的/第3部分的)

一个解决方法是-all_load传给连接在F2当f1联系!



文章来源: iOS framework with dependencies