我收到这个警告:
Class X is implemented in both <framework> and <application> one of the two will be used, which one is undefined
这个警告在网络上有很多报道,但我还没有找到任何可以回答我遇到的具体问题的东西。
场景
我已经构建了 MyFramework 和 MyApplication(作为 MyFramework 的测试/演示应用程序)。
MyFramework 使用 CocoaPod(我将其称为 CoolPod),我也想在 MyApplication 中使用它(假设 MyFramework 的消费者也会这样做是合理的)。
我需要能够将 MyFramework 作为 .framework(对于闭源)进行分发。然而,这意味着 MyFramework 在其编译库中嵌入了 CoolPod。
现在,当我将 MyFramework 和 CoolPod 导入 MyApplication 时,我遇到了这个冲突(输出上面显示的警告),因为 CoolPod 的类已经包含在 MyFramework 的库中(因为嵌入了 CoolPod)。
所以我们有这样的结构:
CoolPod -> MyFramework \
MyApplication
CoolPod /
问题
如何避免这种冲突?
- 有没有办法让我的 MyApplication 为 MyFramework 提供 CoolPod?
- 我是否必须通过 MyFramework 传输 CoolPod 的 header ?
我考虑过在 MyApplication 中包含 CoolPod 的 header (但不是它的库),但是对于本应是简单的情况来说这似乎过于复杂。
非常感谢任何帮助,这现在真的让我很困扰。
谢谢,
靛蓝
最佳答案
对于闭源静态库,我们推荐 cocoapods-packager .不过我不确定它是否支持框架。
关于ios - 类 X 在 <framework> 和 <application> 中都实现了,将使用两者之一,哪个未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27727455/