iOS单元测试编译报错:A-Swift.h中Module 'B'未找到
针对单元测试Target编译时
Module 'B' not found的解决方案 修正Objective-C测试文件的导入语句:你现在导入的是
A-Swift.h,但Swift代码属于Target B,Xcode会为每个Target生成专属的[TargetName]-Swift.h桥接头文件,而非项目名。把导入语句改成:#import "B-Swift.h"检查单元测试Target的Build Settings配置:
- 找到
Defines Module,确保值为YES; - 确认
Product Module Name,保证单元测试Target的模块名和Target B无冲突,且Target B的Product Module Name就是B; - 在
Header Search Paths中添加$(BUILT_PRODUCTS_DIR)并设置为recursive,确保能找到Target B生成的头文件。
- 找到
确认单元测试Target的依赖配置:
进入单元测试Target的Build Phases,在Target Dependencies里检查是否已添加Target B,确保编译测试代码前会先完成Target B的编译。清理编译缓存:
用Command + Shift + K清理项目,再手动删除Derived Data(路径可在Xcode偏好设置的Locations面板找到),之后重新编译整个项目。验证Target B的测试可访问性设置:
在Target B的Build Settings里找到Enable Testability,确保设置为YES,这样Swift测试文件里的@testable import B才能正常访问Target B的内部成员。
内容的提问来源于stack exchange,提问作者Sunset Wan
相关产品推荐
相关产品推荐

