升级到Xcode 10后出现的问题:找不到构建输入文件。

164

昨晚我将我的Xcode SDK升级到10版本,现在发现我无法构建。

我收到以下错误消息:

找不到构建输入文件: '/Users/call01/Library/Developer/Xcode/DerivedData/Comp-Lite-Apps-gytvmossqptokeafrddvvmnlzadk/Build/Products/Debug-iphoneos/SG11.app/SG11'

这个文件在我升级前不存在,我想回退,但希望解决这个问题并保留版本10。

32个回答

1

如果您尝试了性能分析,但没有成功,现在无法构建,请进入目标窗格(通过项目图标),切换到“构建设置”选项卡,搜索PROFILE,并将CLANG_USE_OPTIMIZATION_PROFILE设置为“否”。


1
在我的情况下,我创建了一个新的测试目标并删除了默认的swift文件,所以只剩下info.plist。添加一个新文件解决了这个问题。

1
Xcode抱怨的是一个XIB文件。我通过进入“项目” -> “构建阶段” -> “复制包资源”,移除“有问题”的XIB文件,清理(CMD+Shift+K),重新构建并再次添加它,使其正常工作。

1
我在升级到Xcode 10后不久遇到了这个问题,但那不是问题所在。
我尝试更改构建系统,但那给了我一个意思相同的单独错误。通常会显示“找不到文件X”。
当文件无法找到时,有多个要检查的事项。
1. 恢复引用文件夹 苹果公司做了一件好事,如果它检测到对不存在的文件的引用,它将把这个引用添加到名为“Recovered References”的组中
这很好,但并不总是有效。
  1. 构建阶段编译源代码 在这个列表中,可能会有一个文件的元数据,项目应该编译它,但实际上该文件并不存在,它试图在给定的路径中找到该文件。在这个列表中,它将被变暗,删除它们并通过切换文件的目标依赖关系或手动删除它并拖入重新添加。

  2. 文件路径 双重检查错误打印出的文件路径和Finder中文件的文件路径。您可以通过单击Xcode中的文件并检查“显示文件检查器”选项卡(最左边的选项卡)来轻松查看此内容。如果这些路径是正确的,那么就没问题了!

  3. 在您的项目中变暗的文件不在恢复的引用或红色中 这个让我很生气,因为它对发生了什么不明显,但基本上,如果您进入Finder并将文件移动到不同的位置而没有更新项目中的引用,它会抛出错误,因为该文件不再存在于那里。我发现的唯一迹象是,“项目导航器”选项卡(最左边的选项卡)中的文件非常微弱,但当您要删除此文件时,Xcode不提示您删除引用或发送到垃圾箱。您可以通过删除文件并重新将其添加到项目中或转到“文件检查器”选项卡并单击路径旁边的文件夹图标并将其更改为正确的位置来修复此问题。

无论如何,这个错误表明找不到文件,切换到旧的构建系统只是为了解决更具体的问题。作为开发人员,我们知道编译器只想在文件路径末尾列出一个工件。某个地方路径不正确!我们必须找到它在哪里!
我的问题通过上述第4项得到解决。希望能帮助到别人。

1
在我的情况下,我无意中删除了一个第三方的xcodeproj文件夹,该文件夹是我在应用程序中使用的。

1
我知道这是一个老话题,但我发现在使用xcode 12.3时,与主故事板的CopyPlist编译期间出现了错误。
实际上,将构建设置更改为“Legacy Build Setting”可以解决问题,但它已被弃用,因此我放弃了它,因为它只是一个短期解决方案。
请检查此内容:

enter image description here

有了这个设置,对我很有效。之前我是“复制 plist”。


1

在为此问题苦苦挣扎了约45分钟后,我找到了一个超级简单的解决方案,对我起作用了。

  1. 在项目资源管理器中,单击标记为红色(表示项目无法定位文件)的文件/文件夹。
  2. 查看文件检查器中的详细信息选项卡(通常位于屏幕右侧 - 请参见附加的截图)。
  3. 单击文件夹图标并在本地计算机上找到真实的文件/文件夹。

就是这样。这应该可以解决问题。基本上帮助您的Xcode定位目录并更新引用缓存。

enter image description here


1
我曾删除一个Pod文件夹来修复错误。如果您正在使用CocoaPods,请运行:
  1. pod deintegrate
  2. pod install
这将重新构建您的pods和其中的所有文件。

删除 Pods 和 Podfile.lock 文件,然后重新安装 Pods 对我也起了作用。 - Lahiru Amarathunge

1
只是在这里留下一个额外的,似乎没有列在上面。
在尝试在iPhone 7 Plus上启动时,我在构建设置中排除了arm64架构。
移除它解决了这个问题。

1
有时候,当您将文件移动到不同的文件夹中,特别是将info.plist移动到其他文件夹时,可能会出现一种可能性,您需要定义该文件的位置。为了解决这个问题,只需点击顶部的项目蓝色图标,在项目名称和包标识符的位置上会出现一个按钮,单击该按钮并定位到info.plist文件,然后清理并编译即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接