我收到此警告:

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时,由于在MyFramework的库中已经包含了CoolPod的类(因为嵌入了CoolPod),因此发生了冲突(输出上面显示的警告)。

所以我们有这样的结构:
CoolPod -> MyFramework \
                        MyApplication
               CoolPod /

问题

我如何避免这种冲突?
  • 我的MyApplication是否可以将CoolPod提供给MyFramework?
  • 是否必须通过MyFramework通过管道传输CoolPod的 header ?

  • 我曾考虑过在MyApplication中包含CoolPod的 header (但不包括其lib),但是对于应该是简单情况的情况,这似乎过于复杂。

    非常感谢您的帮助,这真的在阻止我。

    谢谢,

    靛青

    最佳答案

    对于闭源静态库,建议使用cocoapods-packager。我不确定它是否支持框架。

    10-06 13:33