iOS Xcode SPM 未能解开父类(super class)

标签 ios xcode swift-package-manager

我的应用程序由许多项目(框架)组成,一个用于每个主要功能,一个通用框架包含我需要在多个功能中访问的各种东西。

我正在使用 Xcode 11 的 Swift 包管理器来添加依赖项。

通用框架包含一个 RxSwift 依赖项,我在整个项目中都使用它。

当我尝试在我的任何功能框架中使用 RxTest 时,我都遇到了问题。

如果我通过 SPM 直接将 RxTest 添加到测试目标并运行测试,我会得到

failed to demangle superclass of 'class name' from mangled name 'other class name'



和许多

Class 'class name' is implemented in both 'common framework path' and 'test target path'



其中所有这些类都与 Rx 相关。 'failed to demangle' 错误使测试崩溃,并且仅在我尝试初始化 RxTest 类时发生。

如果我将 RxTest 添加到通用框架中,测试运行良好,但是当我运行应用程序时,我得到

dyld: Library not loaded: @rpath/XCTest.framework/XCTest



这是有道理的,因为我正在将一个测试框架添加到一个非测试框架中,这不是一件好事。

所以基本上,我无法获得测试和应用程序都运行良好的配置。应用程序运行或测试运行。

我怎样才能得到这个工作?只有当我在测试目标上构建 RxTest 时,有没有办法在通用框架中包含它?或者 RxTest 是否应该只包含在测试目标中并且我缺少一些配置?

最佳答案

具有 SPM 依赖关系的 Xcode 目前无法处理相互依赖的多个目标中的相同 SPM 依赖关系。目前,每个依赖项只需要位于单个目标中。我现在不知道为什么,但如果尚未提交,我会尝试进行更多调查并提交错误。

关于iOS Xcode SPM 未能解开父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58487485/

相关文章:

ios - 我可以在没有 Facebook 集成的情况下使用 Parse 吗?

ios - 使用 AmbientSound session 的 AVAudioPlayer 在应用程序处于后台时不播放

ios - 我有一个 sigabbt 错误,提示由于未捕获的异常而终止应用程序 'NSInvalidArgumentException'

xcode - iOS模拟器上的YouTube

iphone - 将 SDNestedTable 添加到 subview

iphone - 尝试刷新 View Controller 时黑屏

ios - 在 XCode 中进行 UI 测试期间无法访问自定义 View

ios - 如何安装更新的 swift-tools-version?

swift - Xcode 13.1 错误将依赖项编辑为本地

swift - Swift 包管理器的问题 - 模块映射应该在 "Include"目录中