解决 Xcode 烦人错误:"Build input file cannot be found" 一招搞定!

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

在使用 Xcode 开发时,你可能会遇到一个令人头疼的错误提示:"Build input file cannot be found"。这种情况通常出现在项目的某些文件路径发生变动之后。

导致这个问题的因素有很多,今天我想分享一种我解决这个问题的方法,希望能帮助到你。

问题的产生原因

这个错误在我处理 project.pbxproj 文件中的合并冲突时经常出现。特别是在项目结构发生变化时,你可能会发现一些类似这样的冲突:

arduino 复制代码
A000701D256E5ADF009F48A4 /* UsageDetailViewModelTests.swift in Sources */,
17E973942505E3EA0084D10D /* MainTabBarViewModelTests.swift in Sources */,
174BF411251C9C1E00FE6214 /* CommonNotificationIconViewTests.swift in Sources */,
=====
NOT_A000701D256E5ADF009F48A4 /* UsageDetailViewModelTests.swift in Sources */,
NOT_17E973942505E3EA0084D10D /* MainTabBarViewModelTests.swift in Sources */,
NOT_174BF411251C9C1E00FE6214 /* CommonNotificationIconViewTests.swift in Sources */,

虽然手动解决这些冲突的方法有很多,但我通常会选择快速又简单的方法,要么选择其中一个,要么同时保留两个。手动操作项目结构可能会导致项目结构损坏,这就是我们今天要解决的错误的原因。

"Build input file cannot be found" 错误的解决方案

  1. 打开"项目导航器":在 Xcode 菜单中选择 View > Navigators > Project,或者使用快捷键 ⌘ + 1。

  2. 查找"Recovered References"组:在项目导航器中,Xcode 可能会为你生成一个名为"Recovered References"的组。如果你的项目比较大,可以在导航器底部输入"Recovered References"来进行过滤。

  1. 处理红色文件:在这个组中,你会看到那些在"Build input file cannot be found"错误中提到的文件。通常,你需要删除所有显示为红色的文件,因为这些文件代表 Xcode 无法找到它们在 target 路径中的引用。

  2. 重新添加文件:下一步,你需要重新将这些文件添加到项目中,让 Xcode 重新构建索引,以便 Xcode 知道应该在哪里找到这些文件。

Xcode 9 中的 Recovered References

在 Xcode 9 中,当项目被打开时,Xcode 可能会在项目导航器中创建一个 Recovered References 组。这个组包含了那些在目标中引用但在项目的组树中没有引用的文件。如果出现这个组,就说明 Xcode 无法找到这些文件在 target 路径中的引用。

希望通过以上步骤,你能够解决 Xcode 中的"Build input file cannot be found"错误。

如果你的项目中还有其他问题,可能需要进一步检查项目配置和文件路径。

如果你有其他的解决方案,也欢迎在评论区分享。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
Digitally13 小时前
如何轻松地将联系人从 Mac 同步到 iPhone
macos·ios·iphone
2501_9159090615 小时前
uni-app iOS 上架常见问题与解决方案,实战经验全解析
android·ios·小程序·https·uni-app·iphone·webview
他们都不看好你,偏偏你最不争气17 小时前
【iOS】对象复制与属性关键字
macos·ios·objective-c·cocoa·面向对象
如此风景20 小时前
Swift异步详解
swift
HarderCoder21 小时前
强制 SwiftUI 重新渲染:`.id()` 这把“重启键”你用对了吗?
swift
HarderCoder1 天前
Swift 6.2 新语法糖:在字符串插值里直接给 Optional 写默认值
swift
在下历飞雨1 天前
AI+Kuikly自研DSL初体验:让UI开发更简洁优雅
ios·vibecoding
zzywxc7871 天前
深入探讨AI三大领域的核心技术、实践方法以及未来发展趋势,结合具体代码示例、流程图和Prompt工程实践,全面展示AI编程的强大能力。
人工智能·spring·机器学习·ios·prompt·流程图·ai编程
HarderCoder1 天前
窥探 `@Observable` 的“小黑盒”:private 属性到底会不会被观察?
swift
zzywxc7871 天前
AI 在金融、医疗、教育、制造业等领域有着广泛的应用,以下是这些领域的一些落地案例
人工智能·python·spring cloud·金融·swift·空间计算