xcode 在测试目标中未找到SPM模块

idfiyjo8  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(174)

我正在和单元测试目标中的SPM模块做斗争。简单地添加@testable import MyApp,然后运行UT,最终会出现一个错误,说未找到SPM模块。

更明确地说,这些是错误行:

/MyApp-cxdzdpxkuamerffyiosojkxpvujl/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/MyAppTests.build/Objects-normal/arm64/MyAppTests.swiftdoc:没有这样的文件或目录
/MyApp-cxdzdpxkuamerffyiosojkxpvujl/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/MyAppTests.build/Objects-normal/arm64/MyAppTests.abi.json:没有这样的文件或目录
/MyApp-cxdzdpxkuamerffyiosojkxpvujl/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/MyAppTests.build/Objects-normal/arm64/MyAppTests.swiftmodule:没有这样的文件或目录
/MyApp-cxdzdpxkuamerffyiosojkxpvujl/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/MyAppTests.build/Objects-normal/arm64/MyAppTests.swiftsourceinfo:没有这样的文件或目录
我检查过文件夹,那些文件确实不在那里。

我尝试了什么和更多细节:

1.我添加到项目中的唯一包是Firebase(9.6.0),正如我提到的,它是通过SPM添加的
1.在这个项目中没有使用Cocoapods或Carthage,所以我只使用xcodeproj文件。
1.对于两个目标(main和test)中的Debug配置,Enable testability都设置为true
1.该方案被设置为使用Debug conf启动测试
1.当我在主机应用程序中运行测试时,是否会得到相同的结果
1.我也尝试过移除测试目标并再次添加它,但没有任何改变

  1. Xcode 14.1和M1机器
dhxwm5r4

dhxwm5r41#

我能够在我的单元测试目标上解决这个问题

  • 新建项目MyApp
  • 导航到单元测试目标的生成设置
  • 搜索TEST_HOST
  • 您应该同时看到Linking -> Bundle Loader和Testing -> Test Host部分

在实际项目中,执行以下操作:

  • 将所有捆绑包加载器构建配置(例如,调试/发布等)设置为$(TEST_HOST)
  • 将所有测试主机构建配置设置为$(BUILT_PRODUCTS_DIR)/MyApp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MyApp,将MyApp替换为相应的.app名称

相关问题