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


105

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

我收到此错误:

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

该版本在升级之前不存在,因此我倾向于还原,但如果我能解决此问题,则希望坚持使用版本10。

Answers:


131

尝试切换回Legacy Build SystemFile > Project Settings > Workspace Settings > Legacy Build System


2
真好 但是我仍然想知道以后会发生什么?我们需要修复我们的项目,但是如何解决?
泰迪

1
@Teddy我尚未找到解决方案,仍在使用此变通方法
schmidt9 '18

2
@ schmidt9表示感谢,非常感谢您是救生员。其次,我不能相信这个新的构建系统就是问题所在。我已经为此苦苦挣扎了好几天了。更新到iOS 12和XCode 10后,自动签名被打破。我尝试了所有操作,甚至撤销并重新创建了所有证书。和个人资料。签名是固定的,但配置文件始终为NONE。我可以手动对应用程序进行签名,并且该应用程序可以运行,但是随后发布的应用程序中缺少iCloud容器和其他组件。无论如何,解决了我的问题。上帝啊,苹果每次更新都让我感到沮丧。干杯!
Nexus

这解决了我的自动签名和配置文件问题。但我仍无法使用iCloud容器。当我直接将应用程序安装到手机上时,效果很好。我有一个iCloud容器,并使用iCloud文档来附加iCloud存储中的文件。但是当我将应用程序发布到TestFlight时,它不起作用。静默失败,好像iCloud容器甚至不在分布式应用程序的配置文件中。令人难以置信的令人沮丧。
Nexus

1
@Nexus自苹果启动以来,新构建系统的问题仍然存在(xcode 8或9)。抱歉,没有处理iCloud容器,无法说出问题所在
schmidt9 '18

89

对于Swift文件或属于项目的文件,例如:

Build input file cannot be found: PATH/TO/FILE/FILE.swift

当文件或文件夹已被删除或在项目中移动时,可能会发生此问题。

要解决这个问题:

  1. 进入项目导航器,选择您的项目

  2. 选择Build Phases标签

  3. Compile Sources部分中,检查Xcode抱怨的文件

  4. 请注意,文件路径错误,然后通过单击减号图标将其删除。

  5. 通过单击加号图标重新添加文件,然后在项目中搜索。

  6. 产品>清洁构建文件夹

  7. 建立

通常,您会Recovered References在项目树的Xcode文件夹中找到这些丢失的文件(在Xcode左下方查找搜索栏,然后搜索抱怨的文件):

从此文件夹中删除它们也可以解决该错误。


1
谢谢!我们已经引用了已删除的文件。仅删除这些引用即可解决问题
Jason

有时,当我从XCode中重命名时,“ Finder”中的文件仍然保留旧名称。在“查找器”中找到文件,并将其重命名为新名称。
托尼

58

对我来说,在Xcode 10中,这种解决方案就像一个魅力。只需转到“恢复的引用”文件夹并删除所有红色文件,然后使用适当的引用再次添加即可。

在此处输入图片说明


10
我在我的项目中找不到“ Recovered References”
David M Lee

4
在我们删除红色文件后,“再次添加适当的参考”是什么意思?
PrimeTimeTran

@PrimeTimeTran我的意思是您可以通过拖放或复制粘贴将这些文件引用再次添加到项目中。就像在项目中添加新文件一样。
克里希纳·塔库尔

3
@davidmlee我想他的意思是:“打开项目中的所有文件夹,删除红色的内容,然后再次添加。” 不需要恢复的引用文件夹。
bearacuda13

17

这在Xcode 10中对我有用:

  • 单击您的Xcode项目中的项目图标/名称
  • 转到常规标签
  • 单击“身份”部分下的[选择info.plist文件]
  • 选择info.Plist文件
  • 检查信息选项卡以查看是否成功加载了info.plist
  • 构建并运行


14

上述解决方案最终对我有效;但是,我需要做一些额外的步骤才能最终使其成功编译。(即使在Xcode 9上,也需要这些额外的步骤。)

  1. Xcode:文件->工作区设置->构建系统:旧版构建系统
  2. Xcode:产品->清洁
  3. 旋转以通过不同的仿真器类型进行编译,例如“ iPhone 8”,“ iPhone 8 Plus”等(它们可能会失败也可能不会。)
  4. 最终在“通用iOS设备”上编译

我需要经历一些步骤才能使其正常工作。
Liwen Zhao

13

只需在目标的“ 构建设置”中检查.plist文件的路径即可

在此处输入图片说明


是的-我将plist移到了单独的文件夹中。我认为这些文件夹以前是虚拟的,现在是真实的(旧的蓝色/黄色文件夹)。无论哪种方式,您的答案都是正确的:-)
彼得

10

我已通过以下方式解决了此问题:转到项目的Build Phases(单击顶部的项目图标,然后单击Build Phases)。在此处搜索您的文件。如果存在(将显示为灰色),请将其删除。然后清理(shift + alt + command + k),然后运行!希望能帮助到你。


9

如果错误显示找不到Info.plist,并且路径错误,请执行以下操作:

  1. 从导航器中选择项目,然后选择目标
  2. 选择“构建设置”并搜索“ plist”
  3. 应该有一个名为Info.plist File的选项。将位置更改为正确的位置。

如果您重命名应用程序文件夹/结构,则此答案也适用。感谢@keverly
Lorem

5

以上都不对我有用,但是这样做:

  1. 在Finder中打开项目,右键单击您的.xcodeproj文件并显示包内容
  2. 在文本编辑器中打开project.pbxproj
  3. 查找对丢失文件的引用
  4. 编辑path = "path/to/file.swift"到磁盘上的实际位置并保存文件。
  5. 重建项目

这是修复该问题的方法……令人难以置信
David Seek

同样在这里。您是怎么想出来的?
Peter Schorn

2

打开项目文件所在的右侧导航窗格,或者单击JSUT,然后单击cmd + 1,然后搜索“ Recovered References”文件夹,将所有红色文件打开(删除它们),然后一切正常。


2

我在构建单元测试时就遇到了这种情况。这可能是因为我删除了示例测试而发生的。

我删除了单元测试包,然后将其重新添加,如下图所示,一切都很好。

在此处输入图片说明

在此处输入图片说明


2

重命名文件后遇到此错误。Xcode不能以某种方式正确重命名磁盘上的实际文件。

因此无法找到该文件。有时文件会以红色文本突出显示高光。在其他时候,文件前面的Swift图标会显示灰色叠加。

解决方法很简单。

  • 查看错误,并确切地找到它找不到的文件。
  • 选择找不到的文件。
  • 转到“文件检查器”。它在Xcode的右侧导航窗格中。
  • 单击文件夹图标。
  • 选择正确的文件。
  • 清理构建并再次运行。

1

最近升级到新的Swift版本后,我遇到了类似的问题。移动文件导致我的xcode项目引用了项目目录中不再存在的项目,这给了我错误代码构建输入文件未找到的信息。

在我的情况下,我不知何故有多个文件/图像被引用,如下所述:在此处输入图片说明

在上图中。

  • 导航到“目标”页面。
  • 然后,单击顶部的“构建阶段”选项卡。
  • 向下滚动以复制捆绑资源
  • 查找并删除受影响的文件。(在其上单击删除,或选择它们并单击减号按钮)

正是在这里,我以某种方式从其他文件夹中引用了多个文件和图像,由于无法找到它们,因此构建将失败。而且我也找不到它们!或Xcode仍如何引用它们

希望这对其他人有所帮助!


1

我遇到过同样的问题。问题是我在“目标”>“构建阶段”>“编译源”下没有任何文件。在我将至少一个文件添加到“编译源”后,问题得以解决。


1

并不是说我做错了什么,而是出于完全不同的原因遇到了这个问题,并且知道是什么原因造成的。

我以前使用过finder并将文件拖到项目的目录/文件夹中。我没有拖进Xcode中。为了使Xcode将该文件包含到项目中,我不得不稍后再次将其拖动到Xcode中。

但是当我切换到一个没有该文件(也不需要)的新分支时,Xcode给了我这个错误:

找不到构建输入文件:'/ Users / honey / Documents / xp / xpios / powerup / Models Extensions / CGSize + Extension.swift'


我确实清理了构建文件夹并删除了我的派生数据,但是直到重新启动Xcode才起作用。


1

这对我有用

  1. 尝试删除红色文件
  2. 删除派生数据中的文件
  3. 清理构建文件夹
  4. 然后尝试通过文件->工作区设置中的“新建系统”来进行构建

1

在我的情况下,XCode提到的文件(和目录)不正确,并且在Git与相对较大的分支合并之后,问题开始出现。要解决此问题,我执行了以下步骤:

  • 在XCode的目录系统中搜索文件。
  • 发现错误的文件以红色突出显示(即丢失)。
  • 右键单击该文件,然后删除该文件。
  • 我再次尝试构建代码,瞧,它成功了。

我希望这些步骤可以帮助某人。



0

Xcode抱怨的是一个XIB文件,我可以通过转到项目->构建阶段->复制捆绑资源,删除“有问题的” XIB,清理(CMD + Shift + K),进行构建并将其重新添加来使其工作。


0

还有一种可能是,有时将文件移动到另一个文件夹时,尤其是当您将info.plist文件移动到另一个文件夹时,您需要定义该文件的位置。要解决此问题,只需单击顶部的项目蓝色图标,您将在项目名称和包ID的位置看到一个按钮,单击它并在info.plist那里找到文件,即可愉快地进行编译和编译。


0

升级到Xcode 10后不久,我遇到了这个问题,但这不是问题。

我尝试更改构建系统,但这给了我一个单独的错误,意味着同一件事。通常说“找不到文件X”。

当找不到文件时,有很多检查要检查。

  1. 恢复的引用文件夹Apple做了一件好事,如果它检测到对不存在的文件的引用,它将将该引用添加到名为“已恢复的引用”的组中。

苹果公司很好,但它并不总是有效。

  1. 构建阶段编译源在此列表中,可能会有该项目要编译的文件的元数据,但该文件实际上不存在,并且正在尝试在给定路径下查找该文件。在此列表中,它将变暗,删除它们并通过切换文件的目标依赖项或手动将其删除并将其拖入来重新添加它们。

  2. 文件路径再次检查错误输出的文件路径和finder中文件的文件路径。您可以通过单击Xco​​de中的文件并选中“显示文件检查器”选项卡(最左侧的选项卡)来轻松查看此内容。如果这些路径正确,那么您就很好!

  3. 将项目中没有恢复参考或红色文件的文件变暗,这使我很生气,因为它对发生的情况不甚了解,但是基本上,如果您进入查找器并将文件移动到其他位置而无需更新项目中的参考,由于文件不再存在,它将引发错误。我发现的唯一指示是“项目导航器”选项卡(最左侧的选项卡)中的文件略微变暗,但是当您删除此文件时,Xcode不会提示您删除引用或发送至垃圾。您可以通过删除文件并将其重新添加到项目中或转到“文件检查器”选项卡并单击路径旁边的文件夹图标并将其更改为正确的位置来解决此问题。

无论哪种方式,该错误都表明它找不到文件,切换到旧的生成系统是解决更具体问题的一个先决条件。作为开发人员,我们理解编译器只希望在文件路径的末尾列出工件。路径不正确的地方!我们必须找到那里!

我的问题已通过上面列出的项目4解决。希望这对某人有帮助。



0

就我而言,我不小心删除了我在应用程序中使用的一个第三方xcodeproj文件夹。


0

如果您尝试进行性能分析,然后它无法工作,现在又无法构建,请进入“目标”窗格(通过“项目”图标),切换到“构建设置”选项卡,搜索PROFILE-并将CLANG_USE_OPTIMIZATION_PROFILE设置为“否”。


0

就我而言,我创建了一个新的测试目标并删除了默认的swift文件,因此只剩下了info.plist。添加新文件可解决此问题。


0

就我而言,我有一个生成脚本,该脚本生成.app二进制文件(Buck)。Buck构建脚本与Swift Embed构建步骤并行运行。由于未生成.app二进制文件,因此Swift步骤将失败。

在我的构建脚本中,"$BUILD_PRODUCTS_DIR/$EXECUTABLE_PATH"在下添加了"Output Files"

这告诉Xcode的新构建系统,该脚本将输出应用Binary,然后Xcode将确保同步依赖于此工件的任何构建步骤。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.