这里每天分享一个 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" 错误的解决方案
-
打开"项目导航器":在 Xcode 菜单中选择 View > Navigators > Project,或者使用快捷键 ⌘ + 1。
-
查找"Recovered References"组:在项目导航器中,Xcode 可能会为你生成一个名为"Recovered References"的组。如果你的项目比较大,可以在导航器底部输入"Recovered References"来进行过滤。

-
处理红色文件:在这个组中,你会看到那些在"Build input file cannot be found"错误中提到的文件。通常,你需要删除所有显示为红色的文件,因为这些文件代表 Xcode 无法找到它们在 target 路径中的引用。
-
重新添加文件:下一步,你需要重新将这些文件添加到项目中,让 Xcode 重新构建索引,以便 Xcode 知道应该在哪里找到这些文件。
Xcode 9 中的 Recovered References
在 Xcode 9 中,当项目被打开时,Xcode 可能会在项目导航器中创建一个 Recovered References 组。这个组包含了那些在目标中引用但在项目的组树中没有引用的文件。如果出现这个组,就说明 Xcode 无法找到这些文件在 target 路径中的引用。

希望通过以上步骤,你能够解决 Xcode 中的"Build input file cannot be found"错误。
如果你的项目中还有其他问题,可能需要进一步检查项目配置和文件路径。
如果你有其他的解决方案,也欢迎在评论区分享。
这里每天分享一个 iOS 的新知识,快来关注我吧
本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!