Xcode 14运行UI测试异常:编译文件缺失及启动按钮消失
清理Derived Data后UI测试编译失败问题
问题描述
清理运行UI测试的模拟器的Derived Data后,触发编译错误:
Build input file cannot be found: '/Users/somename/Library/Developer/Xcode/DerivedData/Project-hcpgozxlrdkdmzdzditvdlebgrva/Build/Products/Debug-iphonesimulator/ProjectUITests-Runner.app/PlugIns/ProjectUITests.xctest/ProjectUITests'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?
按下Command + U时触发该错误,且单个自动化测试的启动按钮(测试右侧)已消失。
检查报错路径,发现ProjectUITests.xctest目录下确实没有ProjectUITests文件,目录内容如下:
➜ ProjectUITests.xctest ls -al drwxr-xr-x 15 ivnikiforo 1402375171 480 26 мар 10:27 . drwxr-xr-x 3 ivnikiforo 1402375171 96 26 мар 10:24 .. drwxr-xr-x 37 ivnikiforo 1402375171 1184 26 мар 10:27 Frameworks -rw-r--r-- 1 ivnikiforo 1402375171 773 26 мар 10:27 Info.plist drwxr-xr-x 4 ivnikiforo 1402375171 128 26 мар 08:45 TagManagerResources.bundle -rw-r--r-- 1 ivnikiforo 1402375171 192 26 мар 10:27 V3LoginRoute.json -rw-r--r-- 1 ivnikiforo 1402375171 3440 26 мар 10:27 VSPV3Authenticate.json -rw-r--r-- 1 ivnikiforo 1402375171 33522 26 мар 10:27 VSPV3Login.json -rw-r--r-- 1 ivnikiforo 1402375171 875 26 мар 10:27 VSPV3OnLineHeartbeat.json -rw-r--r-- 1 ivnikiforo 1402375171 897 26 мар 10:27 VSPV3PlayVOD.json -rw-r--r-- 1 ivnikiforo 1402375171 175710 26 мар 10:27 VSPV3QueryCustomizeConfig.json -rw-r--r-- 1 ivnikiforo 1402375171 116410 26 мар 10:27 VSPV3QueryPlaybillListStcPropsMainPage.json -rw-r--r-- 1 ivnikiforo 1402375171 1182 26 мар 10:27 VSPV3QuerySubscriber.json -rw-r--r-- 1 ivnikiforo 1402375171 273 26 мар 10:27 VSPV3SetGlobalFilterCond.json -rw-r--r-- 1 ivnikiforo 1402375171 381842 26 мар 10:27 pagesMAIN.json
已尝试操作
- 重启Xcode
- 重启MacBook
- 确认Scheme中UI测试已启用
- 检查UI测试Target的Pods配置
- 确认测试文件在UI测试Target中可见
补充观察
UI测试Target的Build Phases中没有Compile Sources阶段
解决方案
1. 重新添加Compile Sources阶段
测试Target必须通过该阶段编译测试代码,缺少会导致无法生成可执行文件:
- 选中UI测试Target,切换到
Build Phases标签页 - 点击左上角
+按钮,选择New Compile Sources Phase - 将所有UI测试的
.swift/.m/.h文件拖拽到该阶段的列表中
2. 检查Target的Build Settings配置
- 确认
Product Name设置为ProjectUITests(与报错文件名一致) - 检查
Build Products Path指向正确的Derived Data路径 - 确保
Base SDK和Deployment Target与主App Target保持一致
3. 重新生成Pod配置(若使用CocoaPods)
执行以下命令重置Pod关联:
pod deintegrate pod install
4. 彻底清理并重新构建
- 按下
Command + Shift + K清理当前构建 - 手动删除Derived Data目录:Xcode偏好设置→Locations→点击Derived Data旁箭头,删除对应项目文件夹
- 重启Xcode后,按下
Command + U重新运行测试
5. 确认测试文件的Target Membership
选中测试文件,打开右侧File Inspector,确保Target Membership区域已勾选ProjectUITests
内容的提问来源于stack exchange,提问作者Igor Niki
相关产品推荐
相关产品推荐

