Xcode UITest构建失败报错‘error opening input file’求解决方案
我之前踩过几乎一模一样的坑,给你几个实操性强的排查方向,应该能解决问题:
手动添加文件到UITest Target的编译列表
项目导航里的Target复选框灰色?那绕开它直接操作Build Phases:
打开Project-> 选中你的UITest Target -> 切换到Build Phases标签 -> 找到Compile Sources,点击+号手动把录制好的测试文件添加进去。很多时候复选框灰色只是UI层面的关联问题,直接操作编译列表能绕过这个限制。检查文件的「Target Membership」深层设置
右键测试文件选择Show File Inspector,在Target Membership区域,除了灰色的复选框,看看有没有提示比如「Non-modular header」这类字样。如果是文件所在目录没被Target识别,试试把文件拖到UITest Target对应的文件夹组里(不是随便拖到项目根目录),拖放操作有时候会自动修复Target关联。排查路径中的特殊字符
别小看「error opening input file」,即使你觉得路径正确,也可能是路径里有空格、中文或者特殊符号(比如&、#)导致Xcode编译解析失败。临时把整个项目移到路径极简的目录下(比如~/Desktop/MyTestProject),再重新构建试试。检查UITest Target的Build Settings配置
重点看这几个选项:FRAMEWORK_SEARCH_PATHS和HEADER_SEARCH_PATHS:确保包含测试文件所在的目录,要是引用了其他模块的文件,把ALWAYS_SEARCH_USER_PATHS设为YES;SKIP_INSTALL:UITest Target默认应该设为YES,如果不小心改成NO,也可能导致文件找不到的错误。
终极方案:重建UITest Target
如果上面的方法都没用,大概率是原有UITest Target的配置文件损坏了。直接删除现有的UITest Target,重新添加一个全新的,再重新录制测试操作——这个方法虽然麻烦,但解决过我好多次莫名其妙的Target关联问题。
内容的提问来源于stack exchange,提问作者Manuel

