移动Xcode项目后导致红色文本(项目中缺失文件)

33

当我把iPhone项目目录移动到新路径时,会有一些红色文本指示项目源代码中缺少的文件。

如何避免这些问题?


你是否正在使用像three20这样的第三方SDK? - Di Wu
13个回答

82

以下是使用Xcode 4界面定位丢失(红色)文件的方法:

  1. 在左侧项目导航器(文件夹图标)中选择文件
  2. 在右侧侧边栏中单击“文件检查器”(最左边的图标类似于页面)
  3. 在“标识和类型”部分,有一个灰色框标记为“位置”。
  4. 单击左下角类似于文件浏览器的小图标 - 这将呈现出一个文件浏览器来定位文件。

完成!


6
这并不能帮助那些有数百个文件分布在数十个源代码文件夹中的真实世界项目。 - Jay
2
如果存在许多文件位于同一子文件夹结构下,您可以选择文件夹本身,它将识别其中的子文件夹和文件,而无需为每个文件设置路径。 - TigerCoding
我按照步骤进行了。唯一需要做的事情是在“身份和类型”中将“类型”设置为__Swift Source__。 - mfaani

12

Xcode 7

1.) 右键点击红色(缺失)文件。

2.) 选择“显示文件检查器”。

3.) 在屏幕右侧的“身份和类型”下,看到“位置”和“完整路径”之间。

4.) 单击文件名右侧的文件夹图标。

5.) 在弹出窗口中导航到文件的新位置并选择该文件。


10

当我将我的项目从一台Mac复制到另一台时,遇到了这个问题。

对于我来说,解决方案是:

假设您的文件已分组(在文件夹中)

  1. 从Xcode中打开文件检查器中的组

  2. 该组可能缺少绝对路径。

  3. 按附近的小图标选择要与组关联的文件夹。

  4. 重新启动Xcode以查看更改。


谢谢!我没想到那个小图标。而且路径看起来没问题,但是重新添加路径并重启后,一切都好了。 - Yatko
1
  1. 重新启动Xcode以查看更改。(!重要 :-) )
- Yatko

3

我曾遇到同样的问题,当我将文件/文件夹权限更改为所有人可读/写时,它们就会出现在Xcode中。


你可以将权限设置为664而不是644,这样文件就会显示为可编辑状态(即不是红色的)- 至少对我来说是这样的(OSX10.8,XCode 4.6)。 - stephendwolff

2

这在一个Pod项目上起作用。退出XCode。

rm -rf project.xcworkspace/xcuserdata/*

重新启动XCode并打开项目。


1
  1. 在Finder中,为项目目录创建一个副本以防万一。
  2. 在Finder中打开包含所有带红色引用的文件的项目目录。
  3. 对于XCode中显示的所有带红色文件(除了info.plist文件,参见下面的第5步),请在Finder中将它们高亮并从Finder拖到XCode的项目导航器中。即导入它们。
  4. 在XCode的“选择添加这些文件的选项”窗口中:a)如果需要,请选择将项目复制到目标组文件夹中 b)选择为任何添加的文件夹创建组 c)选择添加到目标,并按完成。
  5. 从Finder中将info.plist文件突出显示并将其从Finder拖到Project Navigator中,然后重复第4步但不要选择添加到目标。
  6. 如果您在Project Navigator中有分组(例如Supporting Files),请将文件重新排序以放置在正确的位置。
  7. 删除Project Navigator中的原始坏红色引用,并使用Cmd-Shift-K进行清理。
  8. 构建并在设备上运行,以删除对.app文件的错误引用。

1
你只需要找到丢失的文件,点击身份中的文件图标并输入文件名,你会找到完整的路径,然后找到你移动到哪里的文件,点击文件图标 this is it

0

这个在Pod项目上有效。

  • 进入Finder和项目。
  • 右键单击您的项目.xcworkspace并单击显示包内容
  • 右键单击contents.xcworkspacedata并使用textEdit打开,然后确保文件路径正确。如果项目已移动,则可能会更改

我也做了下面的操作,但不确定您是否需要它

退出XCode。

rm -rf project.xcworkspace/xcuserdata/*

重新启动XCode并重新打开项目。


0

当您创建这些文件时,请确保保存在您的应用程序目录中。或者,如果您从其他项目导入类,请务必检查复制选项。


它们在项目所在的目录中。 - arachide
从您的项目中删除引用并将该文件重新添加。 - Alex Terente
我必须按照你上面所说的去做,但这并不是一个完美的方式。 - arachide
我做了,但这不是我喜欢的答案。 - arachide

0

我不确定这是否是主要原因,但当你将文件导入应用程序时,你是否勾选了“将项目复制到目标组文件夹中(如果需要)”?

这将确保文件不仅仅被引用,而且被添加到您的项目文件夹中,并且无论您将项目移动到哪里,文件都会一起移动。


我已经选择了“将项目复制到目标组文件夹”的选项。 - arachide
这就是我觉得这个问题很奇怪的原因。 - arachide
我困惑的是,它看起来没有常规。 - arachide
即使我选择了“如果需要则复制项目”,并且文件确实在项目路径中,红色文本问题仍然会发生,我不得不删除引用并将文件再次添加到项目中。 :-( - arachide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接