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

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必须通过该阶段编译测试代码,缺少会导致无法生成可执行文件:

  1. 选中UI测试Target,切换到Build Phases标签页
  2. 点击左上角+按钮,选择New Compile Sources Phase
  3. 将所有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. 彻底清理并重新构建

  1. 按下Command + Shift + K清理当前构建
  2. 手动删除Derived Data目录:Xcode偏好设置→Locations→点击Derived Data旁箭头,删除对应项目文件夹
  3. 重启Xcode后,按下Command + U重新运行测试

5. 确认测试文件的Target Membership

选中测试文件,打开右侧File Inspector,确保Target Membership区域已勾选ProjectUITests


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:47:17