使用 swift 4.2 在 Xcode 10.0 中构建时出现以下错误:
30 回答
在检查器周围移动文件夹可能会导致错误“找不到构建输入文件”
斯威夫特 5
在 Swift 5 中,出现了错误,但身份显示没有错误。
- 进入构建设置并选择打包。
- 删除 Debug 和 Release 的当前路径并输入保存 info.plist 的新路径。
例如 [APPROJECTNAME]/[THEINFOPLISTFOLDER]/info.plist 在下面的截图中,路径是 API-client/Resources/info.plist
斯威夫特 4
要修复它,请转到常规选项卡并在身份下重新选择您喜欢的 info.plist
我希望这有帮助
找不到构建输入文件
如何解决此问题:
进入项目导航器,选择你的项目
选择构建阶段选项卡
在 Compile Sources 部分,检查 Xcode 要求的文件
请注意文件的路径错误,然后单击减号图标将其删除
通过单击加号图标并在项目中搜索来重新添加文件。
产品 > 清洁构建文件夹
建造
解决 project.pbxproj 中的冲突后,我遇到了这个问题。
第 1 步:从 BuildPhases -> Copy Bundle 资源中删除“找不到构建输入文件”文件并将它们添加回来对我有用。
如果上述步骤 1 不起作用,请在项目结构中搜索“Recovered References”文件夹并删除导致此问题的文件并重复步骤 1
对于缺少构建文件,即 info.Plist :在项目导航器下,选择(单击)项目名称和图标,
在中间窗格中,单击目标单击顶部的蓝色常规选项卡单击/目标单击弹出窗口中的[Choose info.plist File]按钮,选择info.Plist文件
在将项目克隆到新文件夹后找不到丢失的视图控制器文件,我遇到了同样的问题。我删除了视图控制器,但编译器继续要求一个不再存在的路径中的文件。
我解决了如下问题:
- 在 Project-navigator 中选择项目目标,
- 转到构建阶段选项卡
- 在 Compile Sources 部分,检查编译器要求的文件。您可以按屏幕右上角的名称进行过滤。
- 删除的文件仍在列表中,路径错误,请单击减号图标将其删除。你必须为你可能拥有的所有目标做这件事。
- 如果您仍在使用该文件,请单击加号图标将其添加到新路径中。
- 在产品菜单中清理构建文件夹。
它现在应该可以工作了:D
(Objective-C 项目/Xcode 版本 10.2.1 (10E1001))
如果您收到“无法找到构建输入文件错误消息”并且检查器中的文件为红色,则此方法有效:
在 Finder 中打开您的项目文件夹
将受影响的文件复制到桌面上
删除 Xcode 中受影响的文件,然后关闭 Xcode
重新打开 Xcode 并将复制的文件拖到 Xcode 项目中
这对我有用。在收到错误消息之前,我正在文件检查器中重新组织文件,这给了我错误消息并使我正在移动的文件变成红色。希望这可以帮助 !!
当我将 Info.plist 移动到文件夹中时出现此错误。
当我从文件夹中取出 Info.plist 时,我不再收到错误消息。
选择常规选项卡并在身份下选择您想要用于开发的 info.plist
我尝试进入Compile Sources
选项Build Phases
卡并删除并重新添加所选文件(以及清理和重建)但它不起作用:(相反,如果您收到“无法找到构建输入文件”,则以下答案对我有用错误信息:
- 在 Xcode 中删除受影响的文件(我在导航器中右键单击->删除)
- 重新添加受影响的文件(我的文件是
.mlmodel
),然后我在目标下选择了“如果需要,复制项目”。 Cmd-shift-k
清洁,然后Cmd-b
建造,瞧!该文件已被识别并且错误消失了!
希望这可以帮助!
就我而言,当我使用Refactor重命名 ViewController 名称时出现此错误。视图控制器名称出现已更改,但实际文件未更改。
我试图按照@ajji 所说的去做,但没有奏效。所以我更改了真实文件的名称。在那之后,一切都像魅力一样
如果一切都失败了:
- 在 Xcode 中。从您的项目中删除相关文件的引用。
- 在 Xcode 中将 project.pbxproj 文件作为文件打开。这是在 .xcodeproj
- 删除包含所述文件名称的所有行。节省。
- 回到 Xcode。在 Xcode 中将文件重新添加到您的项目中。
在我的情况下,文件不在正确的路径中,Xcode 期望在类似的路径中找到输入文件,/Users/Malloc/Projects/MyProject/Info.plist
而实际上该文件位于不同的路径中,例如/Users/Malloc/Projects/MyProject/Subfolder/Info.plist
.
对此的快速解决方法是简单地右键单击文件然后选择Show in Finder
,然后将文件拖到 Xcode 期望的正确路径。
我在构建我的 xcode 项目时也遇到了同样的问题 - “找不到构建输入文件:”原因:我重命名了我的整个项目,但没有重命名构建设置。解决方案:在我项目的build setting--> Packaging中,我更新了 info.plist 文件的路径。现在工作正常。
- 转到项目导航器。
- 点击项目。
- 单击目标。
- 转到构建设置。
- 搜索前缀.pch。
- 更改此文件的位置(输入更新的位置)。
这将解决我的问题。
swift文件也有同样的问题。选择无法识别的文件并使用Remove Reference
选项删除。右键单击文件夹并再次添加文件。
当我使用“重构”重命名 ViewController 名称时出现此错误。视图控制器名称出现已更改,但旧引用仍然存在。
删除 派生数据和清理构建文件夹对我有用。
以下是删除派生数据的方法:
文件>工作区设置>单击箭头并删除派生数据中的所有文件夹。
在某些情况下,如果您在Xcode 工作区中使用右键单击 -> 重构选项重构现有的ViewController文件或任何其他文件 ,然后打开,因为文件名未在原始位置更改但引用已更新,因此您需要还手动将旧文件更改为新名称。compiling this error will come
当我第一次从 Git 检查代码时,我遇到了几个 pod 文件的相同问题。更新 pod 文件解决了我的问题。
- 在终端窗口中打开项目文件夹
- 运行“pod 更新”
- 清理 XCode 并运行。
我只需要在 finder 中打开项目并将适当的文件拖放到项目文件夹中
找不到构建输入文件
如何解决这个问题?
我的方法:
1.从项目导航器->文件->将文件添加到Lowes->在Finder视图中,检查这个丢失的引用文件移动到哪个文件夹,如果有人出于某种原因移动它,请与您的团队成员核对。如果发生错误然后按照以下步骤
2.从项目导航器中,直接点击导致问题的文件。这与XCode显示为错误未找到的文件相同。所以很明显这个文件已经丢失了引用,我们需要恢复它
3.Swift小鸟文件夹图标显示为浅红色,表示丢失参考
4.右键单击它并删除它
5.下一步从项目导航器->文件->将文件添加到Lowes->查找器视图转到此引用文件移动到的文件夹,然后在弹出窗口中点击添加按钮
6.现在,如果您查看 Project Navigator,此文件 swift 小鸟图标以鲜红色显示,但您还会在 Project Navigator 顶部发现一个同名的额外文件
7.如果不将其移动到正确的文件夹,请确保您在正确的文件夹中有此文件
8.现在右键删除最上面的冗余文件,这里不要选择“移动到垃圾箱”选项。只需选择“删除引用”选项
这解决了我的问题。
根据 Xcode 错误中提供的调整文件路径
就我而言,这是由于本地化。
这是修复它的方法。
如何本地化 iOS info.plist 文件中的字符串?
带有 Swift 包的项目更新
错误是如何发生的?
当我将 Swift Packages 导入我的项目时遇到了这个问题,但后来清理DerivedData
以修复一个不相关的应用程序缓存问题。我现有的项目不是本地 Swift 包,而是 iOS 应用程序项目。
请注意,我们仍然可以在本地 Swift Package 项目中遇到相同的问题。
错误的原因是什么?
Swift 包被签出到子文件夹DerivedData
中,并且不会从ModuleCache.noindex
子文件夹中引用。因此,清理应用程序的文件夹DerivedData
或DerivedData
本身会破坏 Xcode for Swift Packages 中的依赖关系解析。
这是一个误导性的构建错误,因为您编写的应用程序代码或依赖关系解析图可能没有任何问题。唯一需要的是刷新依赖项。
如何解决构建错误?
Xcode 现在在 IDE 本身中有很好的选项来解析 Swift 包。这些选项会触发新的结帐到DerivedData
:
根据我们的用例,我们可以使用三个选项,如上图所示:
- Reset Package Caches:触发重新安装具有相同版本的现有包依赖项。
- Resolve Package Versions:在修复包版本以实现交叉兼容性(在项目设置中)时,使用此选项更新包签出。
- Update to Latest Package Versions:使用它来将所有 Swift Package 依赖项更新到最新版本。如果 API 更改,此选项可能是本地重大更改。
注意:Apple 的文档建议在处理不包括 CLT 的 Xcode 项目时使用 Xcode 进行依赖关系解析。
其他解决方案
我们也可以通过重新启动 Xcode 来修复错误,但是我发现这一步会破坏我的工作流程并且很乏味。
如果我们从命令行运行(本地 Swift Package 可执行文件),我们可以坚持使用一个
swift build
变体,而根本不跳转到 Xcode(Source)。swift build
然而,在其他项目中开箱即用并不容易。使用
xcodebuild
:xcodebuild -resolvePackageDependencies
为了简单起见,我更喜欢留在 Xcode 中,但 YMMV。
我的问题是缺少 SettingsController 文件。
我将一个文件从 projectA 复制到 projectB 但忘记打勾Copy items if needed
。几周后我不知道,当我删除 projectA 时,projectB 中的 SettingsController 文件也被删除了。之后在 projectB 中Build input file cannot be found ... path/Folder/toSomeFile
显示了错误。
为了修复它,我关闭了 Xcode,转到它所在的主文件夹,打开文件夹并右键单击带有扩展名的蓝色.xcodeproj
Xcode 图标,然后我选择Show Package Contents
从那里我双击project.pbxproj
图标
打开project.pbxproj
文件后,我按了command+f并在搜索字段中输入了错误的路径部分path/Folder/toSomeFile
我花了 1-2 行看起来像这样的代码
一旦我删除了这 1-2 行,当我回到 projectB 并打开它时,错误就消失了。
只是为了更清楚一点,错误的确切路径是whogotgame_42/whogotgame/Controllers/SettingsController.swift
. 这就是我在project.pbxproj
搜索字段中准确输入的内容,以获取您在图片中看到的那 1-2 行。
您可以使用 $(INFOSTRINGS_PATH)
它是捆绑文件路径。指定包含捆绑包的本地化字符串文件的文件。