Swift 包管理器 - 领域作为集成包的子依赖项 - 在主项目中无法进行测试

Mil*_*mic 5 realm swift-package-manager

设置

iOS、xCode 13、领域 10.20

MainProject使用 Swift Package Manager 集成了两个 swift 包:LayerPersistenceLayerNetwork

LayerPersistence 包依赖于

  • 领域

LayerNetwork 包依赖于

  • 阿拉莫菲尔

MainProject 构建并运行没有问题。未构建 MainProject 的测试。生成以下内容:

Error: Missing required modules: 'Realm.Private', 'Realm'
Run Code Online (Sandbox Code Playgroud)

当我从 MainProject 中排除 LayerPersistence 时 -> 测试运行没有问题。

我尝试过但没有成功

我尝试使用以下命令手动映射模块:-fmodule-map-file=.....some path to file.....Realm.modulemap但没有成功。

我尝试将 Realm 手动包含在带有测试目标库的链接二进制文件中。

什么有效

在 LayerPersistence 中降级到 Realm 版本 5.5.2,并通过以下方式手动将 Realm 链接到 MainProject 的所有测试目标

Build Phases -> Link Binary With Libraries
Run Code Online (Sandbox Code Playgroud)

确实有效,但让我无法使用新的 Realm 版本。

客观的

通过 SPM 集成软件包中最新版本的 Realm,并且仍然能够在 MainProject 中运行测试


笔记:

LayerPersistence 和 LayerNetwork 中的测试运行没有问题。

互联网上有一些解决方案,但它们不能解决新版本 Realm 的问题:

https://github.com/apple/swift-nio/issues/1128

https://github.com/realm/realm-swift/issues/6301

使用 Swift 包管理器时,单元测试中“缺少必需的模块‘XYZ’”