iOS 单元测试报错问题解析
常见问题与解决方案
1、CocoPods 管理的库文件找不到头文件
解决方法:
修改 Podfile 并重新执行pod install
。
在项目的 Build Settings 中,将 Head Search Paths 设置为${SRCROOT}
,查找方式选择 recursive。
2、找不到 Framework 文件
解决方法:
在 Run Search Path 添加 $(FRAMEWORK_SEARCH_PATHS)。
如果仍无法解决,尝试清除 Xcode 缓存。
3、运行 UITest 时显示黑屏
解决方法:
更换 USB 接口。
4、编译错误:Undefined symbols for architecture armv7s
解决方法:
在目标设置中,将 Symbols Hidden by Default 设置为 No。
5、XCTest 框架无法引入
解决方法:
确保在 Podfile 中引入相关依赖,例如pod 'AFNetworking', '~> 3.0'
。
6、找不到第三方库或者 pod 的头文件
解决方法:
在测试 target 的 Build Settings 中搜索 Header Search Paths,然后添加 pods 的头文件路径。
7、Include of nonmodular header inside framework module
解决方法:
在测试 bundle 的 Build Settings 中,将 Allow Nonmodular Includes In Framework Modules 设置为 YES。
8、App 调试报找不到 XCTest
解决方法:
确保精确指定需要的文件路径,或规范单元测试文件命名并在 pod 配置中排除。
9、第一次执行单元测试时报找不到类型
解决方法:
对所有相关文件引入对应头文件。
10、项目报错 Library not loaded: @rpath/XCTest.framework/XCTest
解决方法:
在报错的 Target 中的 Building settings 中 FRAMEWORK_SEARCH_PATHS 添加 $(PLATFORM_DIR)/Developer/Library/Frameworks。
问题描述 | 解决方案 |
CocoPods 管理的库文件找不到头文件 | 修改 Podfile 并重新执行 pod install;设置 Head Search Paths 为 ${SRCROOT} |
找不到 Framework 文件 | 添加 $(FRAMEWORK_SEARCH_PATHS);清除 Xcode 缓存 |
运行 UITest 时显示黑屏 | 更换 USB 接口 |
编译错误:Undefined symbols for architecture armv7s | 在目标设置中将 Symbols Hidden by Default 设置为 No |
XCTest 框架无法引入 | 确保在 Podfile 中引入相关依赖 |
找不到第三方库或者 pod 的头文件 | 在测试 target 的 Build Settings 中添加 pods 的头文件路径 |
Include of nonmodular header inside framework module | 将 Allow Nonmodular Includes In Framework Modules 设置为 YES |
app 调试报找不到 XCTest | 精确指定需要的文件路径;规范单元测试文件命名并在 pod 配置中排除 |
第一次执行单元测试时报找不到类型 | 对所有相关文件引入对应头文件 |
项目报错 Library not loaded: @rpath/XCTest.framework/XCTest | 在 FRAMEWORK_SEARCH_PATHS 添加 $(PLATFORM_DIR)/Developer/Library/Frameworks |
FAQs
1、Q: CocoaPods 管理的库文件找不到头文件怎么办?
A: 修改 Podfile 并重新执行pod install
,然后在项目的 Build Settings 中,将 Head Search Paths 设置为${SRCROOT}
,查找方式选择 recursive。
2、Q: 运行 UITest 时显示黑屏怎么办?
A: 尝试更换 USB 接口。