我已经创建了两个iOS的.frameworks
他们都完全编译
我的结构如下:
iPadProject
- framework1
- framework2
所以Framework2包含在框架1和框架1包括在实际的iPad项目
所以我的问题是,如果我同时添加框架1和framework2到我iPadProject它不能编译,因为它的抱怨从framework2重复的符号(因为它已经包含在框架1这是合乎逻辑的)
但是,如果我只包括框架1到我iPadProject当我从框架1,在轮到他访问从framework2访问方法的方法,崩溃与“信号SIGABRT”应用
不要窝静态库,包括iOS框架。 正如你所看到的,它会导致大问题(它会导致更多问题时,每两个框架都有自己的第三个版本)。 链接的最后一步应该链接所需的所有库; 静态库不应该链接到其他的静态库。 还有就是自动化这个真的没有好办法; 它只是成为框架文件的一部分。
你不应该得到运行时异常,虽然未能链接的框架。 你应该得到的链路故障时,指示该符号没有定义。 如果你得到一个崩溃,这表明你做你的连接一些奇怪的事情。
问题是,因为它是现在嵌套,链接器链接到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联系!