我的应用程序由许多项目(框架)组成,每个主要功能都有一个项目,以及一个通用框架,其中包含我需要在多个功能中访问的各种内容。我正在使用Xcode 11的Swift Package Manager添加依赖项。通用框架包含RxSwift依赖项,我在整个项目中都使用它。当我尝试在任何一个功能框架中使用RxTest时,我遇到了问题。如果我直接将RxTest通过SPM添加到测试目标并运行测试,我会得到“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 只应该包括在测试目标上,我可能错失了某些配置吗?