问题
我正在开发一个框架(让我们将其命名为MyFramework),我想在主机iOS应用程序中使用它。MyFramework依赖于其他几个第三方库(Alamofire、ZIPFoundation等)我将其作为Swift包管理器依赖项添加到MyFramework项目中。
在创建MyFramework.xcframework并将其添加到主机iOS应用程序之后,我得到一个编译错误,显示为No such module 'Alamomfire'。按照this thread中的建议,我还在主机iOS应用程序中添加了Alamofire作为SPM依赖项,这解决了编译错误。但是在运行时,我收到一条控制台消息,上面写着Class _TtC9Alamofire21CompositeEventMonitor is implemented in both <HOME>/Library/Developer/Xcode/DerivedData/DevSample-frwzbtlatwjedobzfossixhbtork/Build/Products/Debug-iphonesimulator/MyFramework.framework/MyFramework (0x10346eb98) and <HOME>/Library/Developer/CoreSimulator/Devices/D17DA122-DB76-4447-B8FD-14FC8405A856/data/Containers/Bundle/Application/F68CBE06-CC7F-40AA-ACA8-2210048CA495/DevSample.app/DevSample (0x102ed31f8). One of the two will be used. Which one is undefined.
问题
这是预期的行为吗?正如在这篇Apple Doc中提到的,不鼓励创建保护伞框架。那么,如何摆脱这些运行时警告/错误呢?
发布于 2021-06-14 15:22:48
@Nominalista我用这种方式创建了一个类似的应用程序和模块设置:我在同一目录下创建了应用程序和框架,然后将该框架的.xcodeproj拖动到我的应用程序中。在框架内部,我添加了Swift包,如Alamofire,ZIPFoundation。我可以从框架本身和应用程序目标中使用这两个传递依赖项中的任何一个,只需一个简单的ie,即"import Alamofire“。
我使用的是Xcode12.5,并且我明确地将Alamofire作为Swift包添加到框架和应用程序中,我没有得到"..is在两者中都实现了……“警告。那么我能问你你的项目是如何设置的吗?
https://stackoverflow.com/questions/66136349
复制相似问题