升级到 Xcode10 后出现的问题:找不到构建输入文件
Problems after upgrading to Xcode 10: Build input file cannot be found
我昨晚将 Xcode SDK 升级到版本 10,然后发现我无法构建。
我收到这个错误:
Build input file cannot be found:
'/Users/call01/Library/Developer/Xcode/DerivedData/Comp-Lite-Apps-gytvmossqptokeafrddvvmnlzadk/Build/Products/Debug-iphoneos/SG11.app/SG11
在我升级之前它不存在,我很想恢复原状,但如果我能解决这个问题,我想坚持使用版本 10。
尝试切换回 Legacy Build System
(File > Project Settings > Workspace Settings > Legacy Build System
)
以上解决方案最终对我有用;但是,我需要做一些额外的步骤才能最终成功编译。 (即使在 Xcode 9 上也需要这些额外的步骤。)
- Xcode:文件 -> 工作区设置 -> 构建系统:遗留构建系统
- Xcode:产品 -> 清洁
- 轮流通过不同的模拟器类型进行编译,例如 "iPhone 8"、"iPhone 8 Plus" 等(它们可能会失败,也可能不会。)
- 最终在 "Generic iOS Device"
上编译
对我来说 Xcode 10,这个解决方案非常有效。只需转到 Recovered References 文件夹并删除所有红色文件,然后使用正确的参考再次添加它。
如果未找到 Recovered References 文件夹:检查项目中所有丢失的文件(红色文件)并再次尝试添加文件引用。
这对我有用 Xcode 10:
- 单击 Xcode 项目中的项目 icon/name
- 转到“常规”选项卡
- 单击“身份”部分下的[选择info.plist 文件]
- Select info.Plist 文件
- 检查“信息”选项卡以查看 info.plist 是否已成功加载
- 构建并运行
这对我有用
- 尝试删除红色文件
- 删除派生数据中的文件
- 清理构建文件夹
- 然后尝试使用文件->工作区设置
中的"new build system"进行构建
我以这种方式解决了这个问题:转到项目的构建阶段(单击顶部的项目图标,然后单击构建阶段)。在那里搜索您的文件。如果它在那里(它将变灰),请将其删除。然后清理(shift + alt + command + k),然后运行!希望对你有帮助。
打开您的项目文件所在的右侧导航窗格
或者只需单击 cmd + 1。然后搜索“Recovered References”文件夹。打开它并删除所有红色文件,然后一切正常。
有趣的是,关闭 Xcode 并重新打开它可能就足够了。
Xcode 抱怨的是一个 XIB 文件,我通过转到项目 -> 构建阶段 -> 复制捆绑资源,删除 "problematic" XIB,清理(CMD+Shift +K), 构建并再次添加它。
如果错误提示找不到 Info.plist 并且正在查找 错误的路径 ,请执行以下操作:
- Select 导航器中的项目,然后 select 目标
- Select "Build Settings" 并搜索 "plist"
- 应该有一个名为 Info.plist 文件的选项。将位置更改为正确的位置。
我在构建单元测试时遇到了这种情况。这可能是因为我删除了示例测试。
我删除了单元测试包,然后重新添加它,如下图所示,一切都很好。
对于Swift个文件或属于项目的文件如:
Build input file cannot be found: PATH/TO/FILE/FILE.swift
当文件或文件夹在项目中被删除或移动时,可能会发生此问题。
修复它:
进入项目导航器,select你的项目
Select Build Phases
选项卡
在 Compile Sources
部分,检查 Xcode 抱怨的文件
注意文件路径错误,点击减号图标删除它们
通过单击加号图标重新添加文件并在项目中搜索。
产品 > 清理构建文件夹
建造
您通常可以在项目树中 Xcode 的 Recovered References
文件夹中找到这些丢失的文件(查找 Xcode 左下角的搜索栏并搜索您的投诉文件):
从这个文件夹中删除它们也可以解决错误。
还有一种可能是,有时当您将文件移动到不同的文件夹时,尤其是当您将 info.plist
移动到其他文件夹时,您需要定义该文件的位置。要解决此问题,只需单击顶部的项目蓝色图标,您将看到一个按钮代替项目名称和包 id,单击它并在其中找到 info.plist
文件,清理并愉快地编译。
我最近升级到新的 swift 版本后遇到了类似的问题。
移动文件导致我的 xcode 项目引用项目目录中不再存在的项目,给我错误代码构建输入文件未找到。
在我的情况下,我有多个 files/images 被引用如下所述:
在上图中。
- 导航到您的“目标”页面。
- 然后单击顶部的构建阶段选项卡。
- 向下滚动以复制捆绑包资源
- 找到受影响的文件并将其删除。 (点击删除它们或 select 它们并点击减号按钮)
正是在这里,我以某种方式从其他文件夹中引用了多个文件和图像,并且构建将失败,因为他们无法再找到它们。我也找不到他们!或者 Xcode 如何仍然引用它们
我希望这对其他人有帮助!
我 运行 在升级到 Xcode 10 后不久就遇到了这个问题,但这不是问题所在。
我尝试更改构建系统,但这给了我一个单独的错误,意思是一样的。一般说"File X can not be found".
找不到文件时需要检查多项内容。
- 恢复引用文件夹
Apple 做了这件好事,如果它检测到对不存在的文件的引用,它会将此引用添加到名为 "Recovered References"
的组中
Apple 很好,但它并不总是有效。
构建阶段编译源
在此列表中,可能存在项目假设要编译的文件的元数据,但该文件实际上并不存在,它正在尝试在给定路径中查找该文件。在此列表中,它将变暗,删除它们并通过切换文件的目标依赖项或手动将其删除并拖入来重新添加它们。
文件路径
仔细检查打印出错误的文件路径和 finder 中文件的文件路径。通过单击 Xcode 中的文件并选中 "Show the file inspector" 选项卡(最左侧的选项卡),您可以很容易地看到这一点。如果这些路径是正确的,那么你很好!
项目中未恢复引用或红色的文件变暗
这让我很生气,因为发生的事情并不明显,但基本上如果你进入 finder 并将文件移动到不同的位置而不更新项目中的引用,它会抛出错误,因为该文件不再存在。我发现的唯一迹象是 "Project Navigator" 选项卡(最左侧的选项卡)中的文件略微变暗,但是当您删除此文件时 Xcode 不会提示您删除参考或发送到垃圾箱。您可以通过删除文件并将其重新添加到项目或转到 "File Inspector" 选项卡并单击路径旁边的文件夹图标并将其更改为正确的位置来解决此问题。
无论哪种方式,错误表明它找不到文件,切换到旧的构建系统是解决更具体问题的创可贴。作为开发人员,我们了解编译器只希望在文件路径末尾列出一个工件。某处路径不正确!我们必须找到它在哪里!
我的问题已通过上面列出的第 4 项解决。希望这对某人有所帮助。
我遇到了同样的问题。问题是我在 Target > Build Phases > Compile Sources 下没有任何文件。在我至少添加一个文件到 Compile Sources 后问题就解决了。
并不是说我做错了什么,但我 运行 出于完全不同的原因进入这个问题并且有点知道是什么原因造成的。
我以前使用 finder 并将文件拖到我的项目 directory/folder 中。我没有拖入Xcode。为了让 Xcode 将该文件包含到项目中,我不得不稍后再次将它拖到 Xcode 中。
但是当我切换到没有该文件(也不需要)的新 b运行ch 时,Xcode 给我这个错误:
Build input file cannot be found:
'/Users/honey/Documents/xp/xpios/powerup/Models
Extensions/CGSize+Extension.swift'
我确实清理了构建文件夹并删除了我的派生数据,但是直到我重新启动我的 Xcode。
它才起作用
上面的 None 对我有用,但这确实是:
- 在 Finder 中打开项目,右键单击您的 .xcodeproj 文件并显示包内容
- 在文本编辑器中打开 project.pbxproj
- 找到您丢失的文件的引用
- 编辑
path = "path/to/file.swift"
到磁盘上的实际位置并保存文件。
- 重建项目
就我而言,我不小心删除了一个我在我的应用程序中使用的第三方 xcodeproj 文件夹。
只需在目标
的构建设置中检查 .plist 文件的路径
在我的例子中,XCode 提到的文件(和目录)不正确,问题是在 Git 与一个相对较大的分支合并后开始出现的。为了解决这个问题,我执行了以下步骤:
- 已在 XCode 的目录系统中搜索文件。
- 找到以红色突出显示的错误文件(即丢失)。
- 右键单击该文件并删除该文件。
- 我再次尝试构建我的代码,瞧,它成功了。
我希望这些步骤能帮助别人。
如果您尝试过性能分析,但它不起作用,现在您无法构建,请进入您的目标窗格(通过项目图标),切换到构建设置选项卡,搜索配置文件 - 并设置 CLANG_USE_OPTIMIZATION_PROFILE 到 "No".
我运行重命名文件后出现此错误。不知何故 Xcode 没有正确重命名磁盘上的实际文件。
所以找不到文件。有时文件会以红色文本颜色突出显示。在其他时候,文件前面的 Swift 图标会变成灰色。
修复很简单。
- 查看错误并准确查看无法找到的文件。
- Select找不到文件。
- 转到 'File Inspector'。它位于 Xcode 的右侧导航窗格中。
- 单击文件夹图标。
- Select 正确的文件。
- 清理构建并再次运行。
在我的例子中,我创建了一个新的测试目标并删除了默认的 swift 文件,所以它只剩下 info.plist
。添加一个新文件修复了这个问题。
在我的例子中,我有一个生成 .app 二进制文件 (Buck) 的构建脚本。
Buck 构建脚本 运行 与 Swift 嵌入构建步骤并行。因为尚未生成 .app 二进制文件,Swift 步骤将失败。
在我的构建脚本中,我在 "Output Files"
下添加了 "$BUILD_PRODUCTS_DIR/$EXECUTABLE_PATH"
。
这告诉 Xcode 的新构建系统此脚本将输出应用程序二进制文件,然后 Xcode 将确保同步依赖于此工件的任何构建步骤。
“旧版构建系统”解决方案对我不起作用。它的作用是:
- 清理项目并删除“DerivedData”。
- 删除项目中未找到的输入文件(仅引用,不删除文件)。
- 构建(=> 将生成与丢失文件相关的错误)。
- 再次将文件添加到项目中。
- 构建(=> 应该成功)。
我知道这是一个老话题,但我发现了 xcode 12.3 的问题,并且与在编译期间执行 main.Storyboard 的 CopyPlist 时的错误有关。
实际上,将构建设置更改为“Legacy Build Setting”是可行的,但它已被弃用,所以我放弃了它,因为这是一个短期解决方案。
检查这个:
有了那个设置,对我有用。在我有“复制 plist”之前。
这是架构问题。不要更改为旧版构建系统!
我遇到了同样的错误,但为我解决的是这个:
上面说 VALID_ARCHS 中的架构也被排除在 EXCLUDED ARCHS 中。我正在与他们搞乱以获得一个 Swift 包以在 Xcode 12 中编译,并为此花了几个小时。
它将在模拟器上编译,而不是在设备上编译。
解决方法:
- 转到构建设置
- 确保“架构”包含 1 个条目:$(ARCHS_STANDARD)
- 确保“排除的架构”没有
- 现在向右滚动到构建设置的底部。
- 确保 VALID_ARCHS 与此屏幕截图完全相同。
- 手臂的东西又是 $(ARCHS_STANDARD)。
- 如果 VALID_ARCHS 不存在,请使用 + 按钮添加。
- 清理 (cmd-shift-K)
- 您的项目现在应该可以在模拟器和设备上完美构建!
- 如果它不起作用,您需要确保所有这些设置在您的目标构建设置和项目构建设置中都相同。
- 请注意,如果您有 Mac Apple 芯片,则可能不需要执行任何操作。
随机,对于 Cocoapods:我没有将我的测试目标添加到我的 Podfile 中。
我删除了一个 Pod 文件夹来修复错误。如果您使用 cocoa pods, 运行:
- pod 分解
- pod 安装
这应该会重建您的 pods 以及其中的所有文件。
在为这个问题苦苦挣扎了大约 45 分钟后,这里有一个对我有用的超级简单的解决方案。
- 在项目资源管理器中,单击红色的 file/folder(表示项目无法找到文件)
- 查看文件检查器中的详细信息选项卡(通常在屏幕右侧 - 请参阅随附的屏幕截图)
- 单击文件夹图标并在您的本地计算机中找到真正的 file/folder。
就是这样。这应该可以解决问题。基本上可以帮助您 xcode 找到目录并更新引用缓存。
我昨晚将 Xcode SDK 升级到版本 10,然后发现我无法构建。
我收到这个错误:
Build input file cannot be found: '/Users/call01/Library/Developer/Xcode/DerivedData/Comp-Lite-Apps-gytvmossqptokeafrddvvmnlzadk/Build/Products/Debug-iphoneos/SG11.app/SG11
在我升级之前它不存在,我很想恢复原状,但如果我能解决这个问题,我想坚持使用版本 10。
尝试切换回 Legacy Build System
(File > Project Settings > Workspace Settings > Legacy Build System
)
以上解决方案最终对我有用;但是,我需要做一些额外的步骤才能最终成功编译。 (即使在 Xcode 9 上也需要这些额外的步骤。)
- Xcode:文件 -> 工作区设置 -> 构建系统:遗留构建系统
- Xcode:产品 -> 清洁
- 轮流通过不同的模拟器类型进行编译,例如 "iPhone 8"、"iPhone 8 Plus" 等(它们可能会失败,也可能不会。)
- 最终在 "Generic iOS Device" 上编译
对我来说 Xcode 10,这个解决方案非常有效。只需转到 Recovered References 文件夹并删除所有红色文件,然后使用正确的参考再次添加它。 如果未找到 Recovered References 文件夹:检查项目中所有丢失的文件(红色文件)并再次尝试添加文件引用。
这对我有用 Xcode 10:
- 单击 Xcode 项目中的项目 icon/name
- 转到“常规”选项卡
- 单击“身份”部分下的[选择info.plist 文件]
- Select info.Plist 文件
- 检查“信息”选项卡以查看 info.plist 是否已成功加载
- 构建并运行
这对我有用
- 尝试删除红色文件
- 删除派生数据中的文件
- 清理构建文件夹
- 然后尝试使用文件->工作区设置 中的"new build system"进行构建
我以这种方式解决了这个问题:转到项目的构建阶段(单击顶部的项目图标,然后单击构建阶段)。在那里搜索您的文件。如果它在那里(它将变灰),请将其删除。然后清理(shift + alt + command + k),然后运行!希望对你有帮助。
打开您的项目文件所在的右侧导航窗格 或者只需单击 cmd + 1。然后搜索“Recovered References”文件夹。打开它并删除所有红色文件,然后一切正常。
有趣的是,关闭 Xcode 并重新打开它可能就足够了。
Xcode 抱怨的是一个 XIB 文件,我通过转到项目 -> 构建阶段 -> 复制捆绑资源,删除 "problematic" XIB,清理(CMD+Shift +K), 构建并再次添加它。
如果错误提示找不到 Info.plist 并且正在查找 错误的路径 ,请执行以下操作:
- Select 导航器中的项目,然后 select 目标
- Select "Build Settings" 并搜索 "plist"
- 应该有一个名为 Info.plist 文件的选项。将位置更改为正确的位置。
我在构建单元测试时遇到了这种情况。这可能是因为我删除了示例测试。
我删除了单元测试包,然后重新添加它,如下图所示,一切都很好。
对于Swift个文件或属于项目的文件如:
Build input file cannot be found: PATH/TO/FILE/FILE.swift
当文件或文件夹在项目中被删除或移动时,可能会发生此问题。
修复它:
进入项目导航器,select你的项目
Select
Build Phases
选项卡在
Compile Sources
部分,检查 Xcode 抱怨的文件注意文件路径错误,点击减号图标删除它们
通过单击加号图标重新添加文件并在项目中搜索。
产品 > 清理构建文件夹
建造
您通常可以在项目树中 Xcode 的 Recovered References
文件夹中找到这些丢失的文件(查找 Xcode 左下角的搜索栏并搜索您的投诉文件):
从这个文件夹中删除它们也可以解决错误。
还有一种可能是,有时当您将文件移动到不同的文件夹时,尤其是当您将 info.plist
移动到其他文件夹时,您需要定义该文件的位置。要解决此问题,只需单击顶部的项目蓝色图标,您将看到一个按钮代替项目名称和包 id,单击它并在其中找到 info.plist
文件,清理并愉快地编译。
我最近升级到新的 swift 版本后遇到了类似的问题。 移动文件导致我的 xcode 项目引用项目目录中不再存在的项目,给我错误代码构建输入文件未找到。
在我的情况下,我有多个 files/images 被引用如下所述:
在上图中。
- 导航到您的“目标”页面。
- 然后单击顶部的构建阶段选项卡。
- 向下滚动以复制捆绑包资源
- 找到受影响的文件并将其删除。 (点击删除它们或 select 它们并点击减号按钮)
正是在这里,我以某种方式从其他文件夹中引用了多个文件和图像,并且构建将失败,因为他们无法再找到它们。我也找不到他们!或者 Xcode 如何仍然引用它们
我希望这对其他人有帮助!
我 运行 在升级到 Xcode 10 后不久就遇到了这个问题,但这不是问题所在。
我尝试更改构建系统,但这给了我一个单独的错误,意思是一样的。一般说"File X can not be found".
找不到文件时需要检查多项内容。
- 恢复引用文件夹 Apple 做了这件好事,如果它检测到对不存在的文件的引用,它会将此引用添加到名为 "Recovered References" 的组中
Apple 很好,但它并不总是有效。
构建阶段编译源 在此列表中,可能存在项目假设要编译的文件的元数据,但该文件实际上并不存在,它正在尝试在给定路径中查找该文件。在此列表中,它将变暗,删除它们并通过切换文件的目标依赖项或手动将其删除并拖入来重新添加它们。
文件路径 仔细检查打印出错误的文件路径和 finder 中文件的文件路径。通过单击 Xcode 中的文件并选中 "Show the file inspector" 选项卡(最左侧的选项卡),您可以很容易地看到这一点。如果这些路径是正确的,那么你很好!
项目中未恢复引用或红色的文件变暗 这让我很生气,因为发生的事情并不明显,但基本上如果你进入 finder 并将文件移动到不同的位置而不更新项目中的引用,它会抛出错误,因为该文件不再存在。我发现的唯一迹象是 "Project Navigator" 选项卡(最左侧的选项卡)中的文件略微变暗,但是当您删除此文件时 Xcode 不会提示您删除参考或发送到垃圾箱。您可以通过删除文件并将其重新添加到项目或转到 "File Inspector" 选项卡并单击路径旁边的文件夹图标并将其更改为正确的位置来解决此问题。
无论哪种方式,错误表明它找不到文件,切换到旧的构建系统是解决更具体问题的创可贴。作为开发人员,我们了解编译器只希望在文件路径末尾列出一个工件。某处路径不正确!我们必须找到它在哪里!
我的问题已通过上面列出的第 4 项解决。希望这对某人有所帮助。
我遇到了同样的问题。问题是我在 Target > Build Phases > Compile Sources 下没有任何文件。在我至少添加一个文件到 Compile Sources 后问题就解决了。
并不是说我做错了什么,但我 运行 出于完全不同的原因进入这个问题并且有点知道是什么原因造成的。
我以前使用 finder 并将文件拖到我的项目 directory/folder 中。我没有拖入Xcode。为了让 Xcode 将该文件包含到项目中,我不得不稍后再次将它拖到 Xcode 中。
但是当我切换到没有该文件(也不需要)的新 b运行ch 时,Xcode 给我这个错误:
Build input file cannot be found: '/Users/honey/Documents/xp/xpios/powerup/Models Extensions/CGSize+Extension.swift'
我确实清理了构建文件夹并删除了我的派生数据,但是直到我重新启动我的 Xcode。
它才起作用None 对我有用,但这确实是:
- 在 Finder 中打开项目,右键单击您的 .xcodeproj 文件并显示包内容
- 在文本编辑器中打开 project.pbxproj
- 找到您丢失的文件的引用
- 编辑
path = "path/to/file.swift"
到磁盘上的实际位置并保存文件。 - 重建项目
就我而言,我不小心删除了一个我在我的应用程序中使用的第三方 xcodeproj 文件夹。
只需在目标
的构建设置中检查 .plist 文件的路径在我的例子中,XCode 提到的文件(和目录)不正确,问题是在 Git 与一个相对较大的分支合并后开始出现的。为了解决这个问题,我执行了以下步骤:
- 已在 XCode 的目录系统中搜索文件。
- 找到以红色突出显示的错误文件(即丢失)。
- 右键单击该文件并删除该文件。
- 我再次尝试构建我的代码,瞧,它成功了。
我希望这些步骤能帮助别人。
如果您尝试过性能分析,但它不起作用,现在您无法构建,请进入您的目标窗格(通过项目图标),切换到构建设置选项卡,搜索配置文件 - 并设置 CLANG_USE_OPTIMIZATION_PROFILE 到 "No".
我运行重命名文件后出现此错误。不知何故 Xcode 没有正确重命名磁盘上的实际文件。
所以找不到文件。有时文件会以红色文本颜色突出显示。在其他时候,文件前面的 Swift 图标会变成灰色。
修复很简单。
- 查看错误并准确查看无法找到的文件。
- Select找不到文件。
- 转到 'File Inspector'。它位于 Xcode 的右侧导航窗格中。
- 单击文件夹图标。
- Select 正确的文件。
- 清理构建并再次运行。
在我的例子中,我创建了一个新的测试目标并删除了默认的 swift 文件,所以它只剩下 info.plist
。添加一个新文件修复了这个问题。
在我的例子中,我有一个生成 .app 二进制文件 (Buck) 的构建脚本。 Buck 构建脚本 运行 与 Swift 嵌入构建步骤并行。因为尚未生成 .app 二进制文件,Swift 步骤将失败。
在我的构建脚本中,我在 "Output Files"
下添加了 "$BUILD_PRODUCTS_DIR/$EXECUTABLE_PATH"
。
这告诉 Xcode 的新构建系统此脚本将输出应用程序二进制文件,然后 Xcode 将确保同步依赖于此工件的任何构建步骤。
“旧版构建系统”解决方案对我不起作用。它的作用是:
- 清理项目并删除“DerivedData”。
- 删除项目中未找到的输入文件(仅引用,不删除文件)。
- 构建(=> 将生成与丢失文件相关的错误)。
- 再次将文件添加到项目中。
- 构建(=> 应该成功)。
我知道这是一个老话题,但我发现了 xcode 12.3 的问题,并且与在编译期间执行 main.Storyboard 的 CopyPlist 时的错误有关。
实际上,将构建设置更改为“Legacy Build Setting”是可行的,但它已被弃用,所以我放弃了它,因为这是一个短期解决方案。
检查这个:
有了那个设置,对我有用。在我有“复制 plist”之前。
这是架构问题。不要更改为旧版构建系统!
我遇到了同样的错误,但为我解决的是这个:
上面说 VALID_ARCHS 中的架构也被排除在 EXCLUDED ARCHS 中。我正在与他们搞乱以获得一个 Swift 包以在 Xcode 12 中编译,并为此花了几个小时。
它将在模拟器上编译,而不是在设备上编译。
解决方法:
- 转到构建设置
- 确保“架构”包含 1 个条目:$(ARCHS_STANDARD)
- 确保“排除的架构”没有
- 现在向右滚动到构建设置的底部。
- 确保 VALID_ARCHS 与此屏幕截图完全相同。
- 手臂的东西又是 $(ARCHS_STANDARD)。
- 如果 VALID_ARCHS 不存在,请使用 + 按钮添加。
- 清理 (cmd-shift-K)
- 您的项目现在应该可以在模拟器和设备上完美构建!
- 如果它不起作用,您需要确保所有这些设置在您的目标构建设置和项目构建设置中都相同。
- 请注意,如果您有 Mac Apple 芯片,则可能不需要执行任何操作。
随机,对于 Cocoapods:我没有将我的测试目标添加到我的 Podfile 中。
我删除了一个 Pod 文件夹来修复错误。如果您使用 cocoa pods, 运行:
- pod 分解
- pod 安装
这应该会重建您的 pods 以及其中的所有文件。
在为这个问题苦苦挣扎了大约 45 分钟后,这里有一个对我有用的超级简单的解决方案。
- 在项目资源管理器中,单击红色的 file/folder(表示项目无法找到文件)
- 查看文件检查器中的详细信息选项卡(通常在屏幕右侧 - 请参阅随附的屏幕截图)
- 单击文件夹图标并在您的本地计算机中找到真正的 file/folder。
就是这样。这应该可以解决问题。基本上可以帮助您 xcode 找到目录并更新引用缓存。