2016-09-20 81 views
0

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

然而,当我去构建项目,我得到类似于许多警告消息,“image.png /Users/Me/Project/images/image.png从工作副本丢失”。错误消息中显示的路径是文件的旧位置。当我在文件列表中查看该图像时,它显示为黑色。当我选择该文件并在右侧窗格中查看完整路径时,它会显示该文件的当前位置(例如“/Users/Me/Project/images/newfolder/image.png”)。我不确定项目中旧位置的存储位置。 FWIW,我已经尝试清洗项目...

感谢见解。

回答

2

所以这里是一个办法,也许不是为温顺,但它是我做的往往比人们所期望解决的Xcode项目文件。我倾向于成为与我一起工作的团队做到这一点的人......手动编辑项目文件。 .xcodeproj文件实际上只是一个特殊的文件夹。实际的项目文件是project.pbxproj

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

好了,让你进入一个可建状态。现在你真的想解决问题。该项目是谁使用绝对路径的关键。

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

enter image description here

基本上你将不得不四处组和文件,并修复的东西最多也不会是绝对的。确保你增量备份,并可以建立。

等等,但不幸的是还有更多。然后,您需要进入Build Settings以查看是否有绝对路径。那么你需要决定如何调整。例如,第三方框架以绝对路径添加并不罕见。

或者,我想,如果你愿意,你可以得到它的工作,并跳过此后期该死其他人......

+0

顺便说一句,你当然可以手动编辑得到的东西是不绝对。编写所有步骤是一件痛苦的事情。我会建议改变一些并注意模式。如果您可以更改组中的所有文件,那么最好,因为Xcode按组分组。一个简单的事情就是创建一个组并在其中移动1-2个文件。确保它们是绝对的。将它们更改为diff,但请注意Xcode项目文件中的更改。然后做那些改变。知道如何手动编辑文件实际上非常方便。 –

+0

谢谢Ben。这对解决其他问题很有帮助。但是,在我的情况下,Xcode引用了项目文件中不再提及的文件。事实证明,正如我在其他论坛帖子中发现的(例如,http://stackoverflow.com/questions/25338428/xcode-issue-file-xxx-png-is-missing-from-working-copy-at-project-建设),我需要推动我的git变化(我使用bitbucket),然后在离开时发出这些警告。奇怪而真实。 –