【问题标题】:'Build input file cannot be found' Swift 4.2, Xcode 10.0'找不到构建输入文件' Swift 4.2,Xcode 10.0
【发布时间】:2019-02-25 08:38:58
【问题描述】:

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

【问题讨论】:

标签: swift xcode xcode11 xcode10 xcode12


【解决方案1】:

在检查器周围移动文件夹可能会导致错误“找不到构建输入文件”

SWIFT 5

在 Swift 5 中,出现了错误,但身份显示没有错误。

  • 进入构建设置并选择打包。
  • 删除 Debug 和 Release 的当前路径并输入保存 info.plist 的新路径。

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

SWIFT 4

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

希望对你有帮助

【讨论】:

  • 因为我没有选择 Info.plist 文件的选项,所以我只点击了常规和一些随机选项卡,没有做任何事情,然后清理并构建项目,它就可以工作了。 :)
  • 我刚刚更新了构建设置中的 info.plist 路径
  • 从“构建设置”中清除 info.plist 路径并重新设置它对我有用
  • 使用 ⇧⌘K ( Shift + Command + K ) 和 'cd ios && pod install' 进行清理(使用 React Native 开发)
  • 我对 Xcode 12.5.1 有同样的问题,有什么解决方案吗?
【解决方案2】:

找不到构建输入文件

如何解决此问题:

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

  2. 选择构建阶段选项卡

  3. 在编译源部分,检查 Xcode 要求的文件

  4. 注意文件路径错误,点击减号将其删除

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

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

  7. 构建

【讨论】:

  • Compile Sources 没有过滤/搜索功能真是太神奇了
  • 这对我有用。快速文件可以在“编译源代码”(答案的第 3 步)中找到 - 如果您在处理情节提要文件时遇到问题,可以在“复制捆绑资源”下找到它们。
  • 如果文件在一个没有项目文件的swift包中怎么办?
  • 这个对我有用,谢谢。我在Compile Sources 部分看到很多核心数据使用文件。
【解决方案3】:

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

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

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

【讨论】:

  • 删除恢复的引用文件夹是票。它包含对文件的缺失引用,这就是错误的来源
【解决方案4】:

Info.plist 移动到另一个文件夹时最常见的错误。 要修复此错误,您可以选择 Info.plist 并从文件检查器中选择 Relevant to Project

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

【讨论】:

    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

      我在将项目克隆到新文件夹后找不到丢失的视图控制器文件时遇到了同样的问题。我删除了视图控制器,但编译器继续要求一个不再存在的路径中的文件。

      我解决的问题如下:

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

      它现在应该可以工作了:D

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

      【讨论】:

      • 我更新了信息:不仅在编译源中,您还可以在捆绑资源或任何其他部分中进行此操作以解决此类问题
      【解决方案7】:

      如果您收到“无法找到构建输入文件错误消息”并且检查器中的文件为红色,则此方法有效:

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

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

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

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

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

      【讨论】:

        【解决方案8】:

        将构建设置更改为旧版

        1. 首先,双击ios/<YourApp.xcodeproj>在XCode中打开你的项目

        2. 然后转到文件>项目设置...

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

        【讨论】:

        • 我尝试了,但我得到了其他错误Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1
        • 这只会隐藏问题,并且在不再支持旧版构建系统时不可避免地会适得其反
        【解决方案9】:

        对我来说这很有效:

        点击TARGETS下的应用名称

        Build Settings -> Packaging -> Info.plist File
        

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

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

        【讨论】:

          【解决方案10】:

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

          当我从文件夹中取出 Info.plist 时,我不再收到错误消息。

          【讨论】:

          • 在移动 Info.plist 时也发生在我身上
          【解决方案11】:

          选择常规选项卡并在身份下选择您想要用于开发的 info.plist

          【讨论】:

            【解决方案12】:

            我尝试在Build Phases 选项卡中转到Compile Sources 并删除并重新添加所选文件(以及清理和重建)但它不起作用:( 相反,如果你得到以下答案对我有用“找不到构建输入文件”错误消息:

            1. 在 Xcode 中删除受影响的文件(我右键单击->在导航器中删除)
            2. 重新添加受影响的文件(我的文件是.mlmodel),然后我在目标下选择了“如果需要,复制项目”。
            3. Cmd-shift-k 清理然后Cmd-b 构建 瞧!该文件已被识别并且错误消失了!

            希望这会有所帮助!

            【讨论】:

            • 删除和重新添加文件对我有帮助
            【解决方案13】:

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

            转到Target>构建设置>架构

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

            Changed it to: armv7 i386 arm64 armv7s

            【讨论】:

              【解决方案14】:

              就我而言,当我使用 Refactor 重命名 ViewController 名称时出现此错误。视图控制器的名称发生了变化,但真正的文件没有。

              我尝试按照@ajji 所说的去做,但没有成功。所以我更改了真实文件的名称。之后,一切都像魅力一样发挥作用

              【讨论】:

                【解决方案15】:

                如果您的文件 - 无法找到 - 图标颜色是苍白的。然后右键单击它,“在 Finder 中显示”不会打开 Finder。这意味着您的文件名与您在导航器中看到的不同。

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

                【讨论】:

                  【解决方案16】:

                  如果一切都失败了:

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

                  【讨论】:

                    【解决方案17】:

                    在我的情况下,文件不在正确的路径中,Xcode 期望在 /Users/Malloc/Projects/MyProject/Info.plist 之类的路径中找到输入文件,而实际上该文件位于 /Users/Malloc/Projects/MyProject/Subfolder/Info.plist 之类的不同路径中。

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

                    【讨论】:

                      【解决方案18】:

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

                      【讨论】:

                      • 太棒了。我重命名了我的项目,无论出于何种原因进行全局搜索,这都被遗漏了。
                      【解决方案19】:
                      • 转到项目导航器。
                      • 点击项目。
                      • 点击目标。
                      • 转到构建设置。
                      • 搜索 Prefix.pch。
                      • 更改此文件的位置(输入更新后的位置)。

                      这将解决我的问题。

                      【讨论】:

                        【解决方案20】:

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

                        【讨论】:

                          【解决方案21】:

                          当我使用“重构”重命名 ViewController 名称时出现此错误。视图控制器名称出现已更改,但旧引用仍然存在。

                          删除派生数据清理构建文件夹对我有用。

                          以下是删除派生数据的方法:

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

                          【讨论】:

                            【解决方案22】:

                            在某些情况下,如果您重构现有的 ViewController 文件或使用 右键单击 -> 重构选项 在strong>Xcode 工作区 然后在 compiling this error will come 上,因为文件名没有在原来的地方更改,但引用已更新,因此您还需要手动将旧文件更改为新名称.

                            【讨论】:

                              【解决方案23】:

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

                              1. 在终端窗口中打开项目文件夹
                              2. 运行“pod 更新”
                              3. 清理 XCode 并运行。

                              【讨论】:

                                【解决方案24】:

                                我只需要在 finder 中打开项目,然后将相应的文件拖放到项目文件夹中

                                【讨论】:

                                  【解决方案25】:

                                  找不到构建输入文件

                                  如何解决这个问题?

                                  我的方法:

                                  1. 1.从项目导航器->文件->将文件添加到Lowes->在Finder视图中,检查这个丢失的引用文件移动到哪个文件夹 如果有人出于某种原因移动它并与您的团队成员核对。如果发生错误 然后按照以下步骤操作

                                    2.从项目导航器中,直接点击导致问题的文件。这与 XCode 显示的文件相同,但在 错误。所以很明显这个文件已经失去了参考,我们需要 恢复它

                                    3.Swift 小鸟文件夹图标显示为浅红色,表示丢失参考

                                    4.右键删除它

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

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

                                    7.如果不将其移动到正确的文件夹中,请确保您将其放在正确的文件夹中

                                    8.现在右键删除最上面的冗余文件,这里不要选择“移动到垃圾箱”选项。只需选择“删除引用”选项

                                  这解决了我的问题。

                                  【讨论】:

                                    【解决方案26】:

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

                                    【讨论】:

                                      【解决方案27】:

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

                                      【讨论】:

                                        【解决方案28】:

                                        使用 Swift 包的项目更新

                                        错误是如何发生的?

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

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

                                        错误的原因是什么?

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

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

                                        如何解决构建错误?

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

                                        根据我们的用例,我们可以使用三个选项,如上图所示:

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

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

                                        其他解决方案

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

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

                                        3. 使用xcodebuild:

                                          xcodebuild -resolvePackageDependencies
                                          

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

                                        【讨论】:

                                          【解决方案29】:

                                          我的问题是缺少 SettingsController 文件。

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

                                          为了修复它,我关闭了 Xcode,转到它所在的主文件夹,打开文件夹并右键单击扩展名为 .xcodeproj蓝色 Xcode 图标,然后选择 @987654330 @

                                          从那里我双击了project.pbxproj 图标

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

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

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

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

                                          【讨论】:

                                            【解决方案30】:

                                            您可以使用 $(INFOSTRINGS_PATH)

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

                                            【讨论】:

                                              猜你喜欢
                                              • 2019-04-12
                                              • 2021-02-06
                                              • 1970-01-01
                                              • 2022-09-29
                                              • 2022-10-06
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 2019-02-23
                                              • 1970-01-01
                                              相关资源
                                              最近更新 更多