Mac Catalyst环境下启动XCTest报错:文件未找到
Mac Catalyst项目单元测试配置修复方案
针对你遇到的Mac Catalyst单元测试路径错误问题,按以下步骤调整配置即可解决:
1. 对齐测试目标与主应用的平台配置
- 打开测试目标(如
MyAppTests)的构建设置:- 找到
Base SDK,设置为macOS (Mac Catalyst),确保和主应用目标的SDK一致; - 找到
Supported Platforms,修改为maccatalyst,避免测试目标默认沿用iOS平台导致构建路径不匹配。
- 找到
2. 用内置变量修正Test Host路径
不要手动硬编码Test Host路径,改用Xcode内置变量自动适配Catalyst的构建目录:
- 在测试目标的构建设置中找到
Test Host,替换为:$(BUILT_PRODUCTS_DIR)/$(PRODUCT_NAME).app/Contents/MacOS/$(PRODUCT_NAME) - 同时确保
Bundle Loader的值与Test Host保持一致,直接设置为$(TEST_HOST)即可。
3. 统一构建路径配置
调整测试目标的构建路径,避免出现嵌套的平台后缀目录:
- 在测试目标的构建设置中,找到
Build Locations下的Per-configuration Build Path,设置为:$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) - 检查主应用目标的同一项设置,确保两者保持一致,这样测试目标的构建目录会和主应用的
Debug-maccatalyst目录对齐。
4. 清理并重新构建
- 执行
Product > Clean Build Folder(快捷键Cmd+Shift+K),彻底清除旧的构建产物; - 选择Mac Catalyst运行目标(如"My Mac"),重新运行单元测试。
问题原因说明
最初的错误是因为测试目标默认使用iOS平台的构建目录(Debug),而Catalyst产物实际在Debug-maccatalyst下;手动修改Test Host时硬编码路径,导致Xcode计算插件目录时出现层级错误,通过统一使用内置变量和对齐平台配置,就能让测试目标正确定位到Catalyst版本的应用包。
内容的提问来源于stack exchange,提问作者user12966834
相关产品推荐
相关产品推荐

