Xcode 找不到源文件

Posted

技术标签:

【中文标题】Xcode 找不到源文件【英文标题】:Xcode can't find source files 【发布时间】:2016-09-20 23:29:13 【问题描述】:

我正在使用 Xcode 8。我最近继承了一个包含数百个文件(包括源文件和图像文件)的项目。我在本地驱动器上重新排列了它们,文件名(适当地)在 Xcode 左侧的文件夹列表中变为红色。我在此文件夹列表中选择了文件/文件夹,单击“隐藏或显示实用程序”按钮以​​显示 Xcode 右侧的“身份和类型”窗格,单击位置旁边的小文件夹图标,然后选择文件/文件夹的新位置。该窗格中的文本已更新到新位置,文件/文件夹名称从红色变为黑色。到现在为止还挺好。我对所有文件/文件夹名称都这样做了,直到它们都没有显示为红色。

但是,当我开始构建项目时,我收到大量警告消息,类似于“工作副本中缺少 image.png /Users/Me/Project/images/image.png”。错误消息中显示的路径是文件的 OLD 位置。当我在文件列表中查看该图像时,它显示为黑色。当我选择该文件并查看右侧窗格中的完整路径时,它会显示文件的当前位置(例如,“/Users/Me/Project/images/newfolder/image.png”)。我不确定旧位置存储在项目的哪个位置。 FWIW,我已经尝试清理项目...

感谢您的见解。

【问题讨论】:

【参考方案1】:

所以这是一种可能不适合温顺的方法,但它是我经常做的事情,而不是人们期望修复 Xcode 项目文件。我倾向于在与我合作的团队中指定执行此操作...手动编辑项目文件。 .xcodeproj 文件实际上只是一个特殊文件夹。实际项目文件为project.pbxproj

首先备份项目文件。您可以选择是完整的.xcodeproj 还是仅project.pbxproj。 使用您喜欢的文本编辑器并打开 project.pbxproj 文件。 搜索并替换路径的前缀。为了这个练习,你应该尽量保持你的路径尽可能相似,以使其更容易。例如,如果硬编码路径是 /Users/Me/Project/Images/newfolder/image.png 并且所有前缀通常都是“/Users/Me/Project”,您可以只搜索“/Users/Me/”或“/Users/Me/Project”(如果您想要更安全,则为后者)并替换为“/Users/You/”或“/Users/You/Project”。请注意,我不是在搜索“我”并替换为“你”。您希望搜索和替换,但要尽可能可控。 完成后,保存并打开项目。如果项目根本没有打开,这意味着你搞砸了。重来。请注意,更改路径不足以破坏文件。这可能意味着您不小心添加或删除了某些内容。 如果项目文件现在打开,则构建。它应该有望建成。

好的,这样您就可以进入可构建状态。现在你真的想解决问题。无论是谁做这个项目,都是使用绝对路径的笨蛋。

下一部分会很乏味。可能有手动执行此操作的方法,但我现在将其留给读者练习。在 Xcode 中的文件检查器中,您将希望将文件更改为“绝对路径”以外的任何内容。这是一个示例,您可以看到位置是“相对于组”。

基本上,您将不得不围绕组和文件进行修复,使其不是绝对的。确保您以增量方式备份并且可以构建。

等等,但不幸的是还有更多。然后,您需要进入构建设置以查看是否为绝对路径。然后你需要决定如何调整。例如,添加绝对路径的 3rd 方框架并不少见。

或者我想如果你愿意,你可以让它工作,跳过后面的部分,该死的其他人......

【讨论】:

顺便说一句,您当然可以手动编辑以使事情变得非绝对。把所有的步骤都写下来很痛苦。我建议更改一些并注意模式。如果您可以更改组中的所有文件,那是最好的,因为 Xcode 按组组织内容。一个简单的事情是创建一个组并在其中移动 1-2 个文件。确保它们是绝对的。将它们更改为 diff,但请注意 Xcode 项目文件中的更改。然后进行这些更改。知道如何手动编辑文件实际上非常方便。 谢谢本。这对解决其他问题有很大帮助。但是,在我的例子中,Xcode 引用了项目文件中不再提及的文件。事实证明,正如我在其他论坛帖子(例如,***.com/questions/25338428/…)中发现的那样,我需要推送我的 git 更改(我正在使用 bitbucket),然后在离开时推送这些警告。奇怪但真实。

以上是关于Xcode 找不到源文件的主要内容,如果未能解决你的问题,请参考以下文章

XCode - 为啥我找不到文件?

找不到构建输入文件:如何更改文件的路径 [xcode]

Xcode 10:找不到此可执行文件的有效配置文件

Xcode 找不到匹配的配置文件 - Ionic Cordova

xcode“找不到此可执行文件的有效配置文件”

如何解决“Xcode 找不到源文件”