【发布时间】:2015-08-31 13:46:29
【问题描述】:
在网上看到很多符号冲突问题的解决方案symbols collusion problem in static libraries
基本上,当框架使用者项目(例如 A.project)导入框架(例如 B.framework)而 B.framework 导入也在 A.project 中独立使用的第三方框架(c.framework)时,就会出现问题. 在这种情况下,运行时会发生符号串通:
Class 在 和 中都实现了。将使用两者之一。哪一个是未定义的。
我正在寻找几周的时间来了解如何为 作为动态框架的可可触摸框架解决此问题。我看到的所有解决方案都在谈论静态框架。
许多解决方案说最好的方法是不将第三方 c.framework 直接链接到 B.framework,而是告诉客户将其链接到项目。
但在这种情况下,我的框架代码无法构建 - 如果我从框架中的“与库链接二进制文件”中删除 c.framework,我开发 B.framework 代码无法编译,说模块和对象丢失。
我怎样才能做到这一点?以某种方式使用第三方框架 C.framework 类而不导出它们或引用而不是链接
我真的需要这方面的技术帮助
【问题讨论】:
-
我们可以用框架的实际名称打印实际的错误吗?
-
是的,第三方是 GoogleMobileAds.framework,错误是“objc[7114]:在 VeediFramework 和 ...VeediDemoApp.app/VeediDemoApp 中都实现了 GADGestureUtil 类。将使用两者之一。哪个未定义”此返回所有 GoogleMobileAds 对象
标签: ios swift clang cocoa-touch