【发布时间】:2019-03-08 12:53:58
【问题描述】:
我们创建了一个分发给不同人的 IOS 框架。但是现在我们遇到了一个有趣的问题。我们在我们的框架中使用了 protobuf,我们的一个客户开始使用 Expo Kit,它最近也包含了 protobuf,现在我们的客户在使用我们的框架时遇到了崩溃:
Class Foo is implemented in both ... One of the two will be used. Which one is undefined.
我们不能使用 Cocoapods Protobuf-ios,因为它已经过时了。
我能想到的唯一选择是在不包含此客户端的 protobuf 文件的情况下构建框架。所以我们的框架将使用他们的 Expo Kit profobuf 文件。我该如何在 Xcode 中执行此操作,或者是否有替代解决方案。
编辑:
我想要实现但似乎无法做到的事情。我想在没有我的 Protobuf.a 文件的情况下分发我的框架。 Protobuf.a 必须依赖于客户端应用程序。
【问题讨论】:
-
protobuf 在你的框架之外是否可见?
-
@HereTrix 你的意思是 protobuf 在框架之外是可见的吗?也许这会回答你的问题。我们有一个 Protobuf 的静态库。我希望构建我的框架,以便静态库成为一个依赖项,但如果没有捆绑包中包含的静态库,我似乎无法构建我的框架。它一直将它包含在我的框架中。我确实尝试使用库搜索路径,而不是将其链接或嵌入到我的框架中。
-
尝试在 Link Binary with Libraries in Build Phases 中将其标记为可选
-
@TibinThomas 我试过了。
标签: ios xcode frameworks