You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单元测试目标中SPM模块未找到问题求助

解决Xcode 14.1(M1设备)中SPM模块在单元测试中找不到的问题

针对你遇到的添加@testable import MyApp后单元测试报错缺失MyAppTests.swiftdoc、abi.json等文件的问题,结合你已做的操作,试试以下几个针对性方案:

1. 确认SPM模块与测试目标的关联

打开项目的Package Dependencies面板,选中Firebase相关的所有模块,查看右侧的Target Membership,确保你的MyAppTests测试目标被勾选。SPM默认只会将依赖关联到主目标,测试目标需要手动勾选才能被正确引入。

2. 彻底清理构建缓存

  • 按下Cmd+Shift+K清理项目构建产物;
  • 按下Cmd+Option+Shift+K彻底清理Xcode的构建目录;
  • 手动删除Derived Data:打开Xcode偏好设置→Locations,找到Derived Data的路径,删除整个文件夹;
  • 重启Xcode后重新构建并运行测试。

3. 检查测试目标的Build Settings配置

  • 搜索Framework Search Paths,确保包含$(inherited),该配置会自动继承SPM生成的模块路径;
  • 搜索Test Host,确认值为$(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp(替换为你的主APP名称);
  • 搜索SWIFT_INCLUDE_PATHS,确保包含$(inherited),避免模块头文件路径缺失。

4. 适配M1设备的架构设置

  • 打开主目标和测试目标的Build Settings,搜索Architectures,设置为Standard Architectures (Apple Silicon, Intel 64-bit);
  • 搜索Excluded Architectures,在Debug配置下清空该字段(部分M1设备的模拟器架构冲突会导致模块加载失败)。

5. 调整主目标的分发构建设置

打开主目标的Build Settings,搜索Build Libraries for Distribution,将该选项设置为NO。开启该选项后生成的模块格式可能与单元测试的兼容性不佳,尤其是SPM引入的第三方库。

6. 重新添加SPM依赖

如果以上方法都无效,先移除Firebase的SPM依赖,然后重新添加并选择9.6.0版本,添加过程中务必同时勾选主目标和测试目标,确保依赖被正确关联。

内容的提问来源于stack exchange,提问作者thelioncubofcintra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:20:41