'Build input file cannot be found' Swift 4.2, Xcode 10.0

'Build input file cannot be found' Swift 4.2, Xcode 10.0

在 Xcode 10.0 和 swift 4.2 中构建时出现以下错误:

我将 Info.plist 移动到文件夹时出现此错误。

当我从文件夹中取出 Info.plist 时,不再出现错误。

将构建设置更改为旧版

  1. 首先,双击 ios/<YourApp.xcodeproj>

  2. 在 XCode 中打开您的项目
  3. 然后转到 文件 > 项目设置...

  4. 在每用户项目设置中将构建系统更改为旧版构建系统:

对于缺少的构建文件,即 info.Plist: 在项目导航器下, select(单击)项目名称和图标,

在中间窗格中,单击目标 单击顶部的蓝色常规选项卡 点击/目标 单击 [选择 info.plist 文件] 按钮 在弹出 window、select info.Plist 文件中

在检查器周围移动文件夹会导致错误 "Build input file cannot be found"

SWIFT 5

在Swift5中,出现错误,但身份显示没有错误。

  • 进入构建设置和 select 打包。
  • 删除调试和发布的当前路径并输入保留 info.plist 的新路径。

例如 [APPROJECTNAME]/[THEINFOPLISTFOLDER]/info.plist 在下面的截图中,路径是API-client/Resources/info.plist

SWIFT 4

要修复它,请转到常规选项卡,然后在身份下重新select您喜欢的info.plist

希望对您有所帮助

如果您获得 'Build input file cannot be found error message' 并且在检查器中有红色文件,则此方法有效:

  1. 在 Finder 中打开您的项目文件夹

  2. 将受影响的文件复制到您的桌面上

  3. 删除Xcode中受影响的文件然后关闭Xcode

  4. 重新打开 Xcode 并将复制的文件拖到 Xcode 项目中

这对我有用。在收到错误消息之前,我正在文件检查器中重新组织文件,这给了我错误消息并使我正在移动的文件变成红色。希望这有帮助!!

我在解决 project.pbxproj 中的冲突后遇到了这个问题。

第 1 步:从 BuildPhases -> Copy Bundle 资源中删除“无法找到构建输入文件”文件并将它们添加回来对我有用。

如果上述第 1 步不起作用,请在项目结构中搜索“恢复的引用”文件夹并删除导致此问题的文件,然后重复第 1 步

  • 转到项目导航器。
  • 单击项目。
  • 点击目标。
  • 转到生成设置。
  • 搜索Prefix.pch。
  • 更改此文件的位置(输入更新后的位置)。

这将解决我的问题。

swift 个文件有同样的问题。 Select 个无法识别的文件,并使用 Remove Reference 选项删除。右键单击文件夹并再次添加文件。

Select 常规选项卡和身份 select 下的 info.plist 您想要用于开发的

在我的例子中,文件不在正确的路径中,Xcode 期望在 /Users/Malloc/Projects/MyProject/Info.plist 这样的路径中找到输入文件,而实际上文件位于不同的路径中喜欢 /Users/Malloc/Projects/MyProject/Subfolder/Info.plist.

快速解决此问题的方法是简单地右键单击文件,然后 select Show in Finder,然后将文件拖动到 Xcode 期望的正确路径。

当我使用 "Refactor" 重命名 ViewController 名称时出现此错误。视图控制器名称出现次数已更改,但旧引用仍在某处存在。

Deleting derived data & Clean build folder worked for me.

删除派生数据的方法如下:

文件>工作区设置>单击箭头并删除派生数据中的所有文件夹。

无法找到构建输入文件

如何解决这个问题:

  1. 进入project-navigator,select你的项目

  2. Select 构建阶段选项卡

  3. 在“编译源”部分,检查Xcode要求

  4. 的文件
  5. 注意文件路径错误,点击减号图标删除它们

  6. Re-add 单击加号图标并在项目中搜索文件。

  7. 产品 > 清理构建文件夹

  8. 建造

我遇到了同样的问题,即在新文件夹中克隆项目后无法找到缺少的视图控制器文件。我删除了视图控制器,但编译器继续在不再存在的路径中请求文件。

我解决问题如下:

  • Select项目目标在Project-navigator,
  • 转到构建阶段选项卡
  • 在“编译源”部分,检查编译器要求的文件。您可以按屏幕右上角的名称进行筛选。
  • 已删除的文件仍在列表中,但路径错误,请单击减号图标将其删除。你必须为你可能拥有的所有目标做这件事。
  • 如果您仍在使用该文件,请单击加号图标将其添加到新路径。
  • 在产品菜单中清理构建文件夹。

现在应该可以了:D

(Objective-C 项目 / Xcode 版本 10.2.1 (10E1001))

就我而言,当我使用 Refactor 重命名 ViewController 名称时出现此错误。视图控制器名称出现次数已更改,但实际文件未更改。

我尝试按照@ajji 所说的进行操作,但没有成功。所以我更改了真实文件的名称。在那之后一切都很顺利

对我来说完全不同的东西起作用了:

转到目标>构建设置>体系结构

My valid architectures before: arm64 arm64e armv7 armv7s(默认)

Changed it to: armv7 i386 arm64 armv7s

我尝试转到 Build Phases 选项卡中的 Compile Sources 并删除和 re-adding 选定的文件(以及清理和重建)但它没有用 :( 相反,这个如果您收到 'Build input file cannot be found' 错误消息,以下答案对我有用:

  1. 删除Xcode中受影响的文件(我right-clicked->在导航器中删除)
  2. Re-add 受影响的文件(我的是 .mlmodel),我在目标下选择了 "Copy items if needed"。
  3. Cmd-shift-k 清理然后 Cmd-b 构建 瞧!文件已被识别且错误已消失!

希望对您有所帮助!

在某些情况下,如果您重构现有的ViewController文件或使用的任何其他文件右键单击 -> Xcode 工作区 中的重构选项 然后在 compiling this error will come 上,因为文件名称在原始位置没有更改,但参考已更新,因此您还需要手动将旧文件更改为新名称。

当我第一次从 Git 中检出代码时,我遇到了几个 pod 文件的相同问题。更新 pod 文件解决了我的问题。

  1. 在终端中打开项目文件夹window
  2. 运行 'pod update'
  3. 清洁 XCode 和 运行。

对我来说这很有效:

单击 TARGETS

下的应用程序名称
Build Settings -> Packaging -> Info.plist File

将 Info.plist 文件的文件位置更改为新位置。

DemoApp/Info.plist to DemoApp/Assets/Info.plist

如果您的文件 - 找不到 - 图标颜色是苍白的。并且您右键单击它并且 "Show in Finder" 不会打开 Finder。这意味着您的文件名与您在导航器中看到的不同。

要解决它,请转到您的文件所在的位置,并将其名称更改为您在导航器中看到的名称。

我只需要在 finder 中打开项目,drag/drop 项目文件夹中的相应文件

找不到构建输入文件

如何解决这个问题?

我的方法:

  1. 1.From Project Navigator ->Files ->Add Files to Lowes ->In Finder View,检查这个丢失的引用文件被移动到哪个文件夹 并与您的团队成员核实是否有人将其移动 reason.If 它是错误发生的 然后按照以下步骤

    2.From 项目导航器,直接点击导致 issue.This 的文件与 XCode 显示为未找到的文件相同 错误。很明显这个文件丢失了引用,我们需要 恢复它

    3.The Swift bird 文件夹图标显示为浅红色,表示引用丢失

    4.Right 点击并删除

    5.Next 从 Project navigator -> Files ->Add Files to Lowes -> Finder View 转到此引用文件移动到的文件夹 然后点击弹出窗口中的添加按钮 window

    6.Now 如果你查看 Project Navigator 这个文件 swift 小鸟图标显示为鲜红色,但你还会发现一个额外的文件 在项目导航器的顶部具有相同的名称

    7.Make 如果没有将此文件移动到正确的文件夹,请确保您将此文件放在正确的文件夹中

    8.Now右键删除最上面的冗余文件,这里不要select“移至垃圾箱”option.Justselect“删除引用”选项

这解决了我的问题。

在另一个文件夹中移动 Info.plist 时最常见的错误。 要修复此错误,您可以 select Info.plist 并从文件检查器中选择 与项目相关

下一步,转到构建设置并搜索info.plist并修复文件路径。

我在构建 xcode 项目时也遇到了同样的问题 - “找不到构建输入文件:” 原因:我重命名了我的整个项目,但没有重命名构建设置。 解决方案:在我项目的build setting--> Packaging中,我更新了info.plist文件的路径。现在工作正常。

根据Xcode错误中提供的路径调整文件路径

如果一切都失败了:

  1. 在Xcode。从您的项目中删除相关文件的引用。
  2. 将 project.pbxproj 文件作为 Xcode 中的文件打开。这是在 .xcodeproj
  3. 删除所有包含上述文件名称的行。保存。
  4. 回到 Xcode。将文件重新添加到 Xcode.
  5. 中的项目

就我而言,这是由于本地化。
修复方法如下。
How to localise a string inside the iOS info.plist file?

带有 Swift 包的项目更新

错误是如何发生的?

我 运行 在将 Swift 包导入我的项目时遇到了这个问题,但后来清理 DerivedData 以修复不相关的应用程序缓存问题。我现有的项目不是本地 Swift 包,而是 iOS 应用程序项目。

请注意,我们在本地 Swift 包项目中仍然会遇到同样的问题。

错误的原因是什么?

Swift 包被检出到 DerivedData 并且未从 ModuleCache.noindex 子文件夹中引用。因此,清理 DerivedData 中的应用程序文件夹或 DerivedData 本身会破坏 Xcode 中 Swift 包的依赖项解析。

这是一个误导性的构建错误,因为您编写的应用程序代码或您的依赖关系解析图可能没有任何问题。唯一需要的是刷新依赖项。

如何解决构建错误?

Xcode 现在在 IDE 本身中有很好的选项来解析 Swift 包。这些选项会触发对 DerivedData:

的新签出

我们可以使用三个选项,如上图所示,具体取决于我们的用例:

  1. 重置包缓存:触发重新安装具有相同版本的现有包依赖项。
  2. 解决包版本:在修复包版本以实现交叉兼容性(在项目设置中)时,使用此选项更新包签出。
  3. 更新到最新的软件包版本:使用它来将所有 Swift 软件包依赖项更新到最新版本。如果 API 更改,此选项可能是本地重大更改。

注意:Apple 的文档recommends 在使用 Xcode 项目(不包括 CLT)时使用 Xcode 进行依赖项解析。

其他解决方案

  1. 我们也可以通过重新启动来修复错误 Xcode,但我发现这一步破坏了我的工作流程并且很乏味。

  2. 如果我们 运行 来自命令行(本地 Swift 包可执行文件),我们可以坚持使用 swift build 变体而不跳转到 Xcode (Source)。但是,swift build 在其他项目中开箱即用并不容易。

  3. 使用xcodebuild:

    xcodebuild -resolvePackageDependencies
    

为了简单起见,我更喜欢留在 Xcode 但 YMMV。

您可以使用 $(INFOSTRINGS_PATH)

这是Bundle文件路径。指定包含包的本地化字符串文件的文件。

我的问题是缺少 SettingsController 文件。

我将一个文件从项目 A 复制到项目 B 但忘记勾选 Copy items if needed。几周后我不知道,当我删除 projectA 时,projectB 中的 SettingsController 文件也随之被删除。之后在 projectB 中显示错误 Build input file cannot be found ... path/Folder/toSomeFile

为了修复它,我关闭了 Xcode,转到它所在的主文件夹,打开文件夹并右键单击 blue Xcode带有扩展名 .xcodeproj 的图标,然后我选择 Show Package Contents

从那里我双击 project.pbxproj 图标

打开 project.pbxproj 文件后,我按 command+f 并在搜索字段中输入错误的路径部分 path/Folder/toSomeFile

我用了 1-2 行看起来像这样的代码

一旦我删除了那 1-2 行,当我回到项目 B 并打开它时,错误就消失了。

为了更清楚一点,错误的确切路径是 whogotgame_42/whogotgame/Controllers/SettingsController.swift。这就是我在 project.pbxproj 搜索字段中准确输入的内容,以找到您在图片中看到的那 1-2 行。

我将 Info.plist 文件放入文件夹时出现此错误。然后,当我将文件提取到 public 视图时,错误消失了。