升级到 Xcode 4之后缺少显示的文件警告

我最近升级到 Xcode 4(这是一个很好的升级) ,但是现在我得到了一些以前没有得到的警告。我已经看过论坛和其他职位,但没有遇到如何解决这个问题。

我得到的警告是缺失文件的项目级别警告。显示的文件已从项目导航器视图中删除(也选择从文件系统中删除)。然而,它似乎仍然显示为以某种方式链接到项目,即使该文件不再出现在项目导航器。

我四处看了看,没有发现如何告诉 Xcode 这些文件不见了,不要再给我警告了。这是我在 Xcode4中得到的一个截图,但是在 Xcode3中没有得到。

Missing file warning Xcode 4

70356 次浏览

生成后按 Cmd + 7并选择最新的生成操作。它看起来有点像古老的 Xcode 吗?:) enter image description here

我有这个错误,找不到解决它的方法,除了创建一个空文件的立场,然后删除它。这种情况发生在我已经从项目中删除的文件上,清理、构建、手动删除“派生数据”目录也不起作用。我相信这是一个错误,如果它发生在多个文件中,那么它会非常痛苦。

它与项目中的.svn 隐藏文件夹有关。

我通过将项目与 svn 分离来解决这个问题。

打开终端并键入以下命令:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

这将允许您查看项目中的.svn 文件夹

删除项目文件夹/子文件夹中的每个.svn 文件夹

重新启用隐藏文件:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

现在您的项目与 svn 分离了,您不再会遇到构建问题。

重新添加您的项目到 svn 或任何东西。

我自己也是个初学者,这是我处理这个问题的方式,所以我不确定这是最好的方式。总之,问题解决了。

我也有这个问题,正如 user151215所描述的,是由于. svn 文件夹造成的。

我有一个旧的.svn 文件夹,不在项目本身中,而是在项目父文件夹中。

冒犯。Svn 文件夹将有一个条目文件,其中包含您丢失的文件。因此,您可以使用 Teminal 并搜索丢失的文件名字符串,例如 grep-lir BagController.m yourRootDevDir/*

比在 finder 中启用隐藏文件更简单,只需将终端. cd 用于相关目录,以及 mv. svn ~/. Trash

希望这个能帮上忙!

这些解决方案太难了。问题是您已经从文件系统中删除了项目,但是 SVN 仍然认为它们存在。 将项目从 SVN 中分离将会起作用,删除.SVN 文件夹也是一样,但是这将会破坏您的存储库!

打开控制台、浏览到您的文件夹(“ cd/pathToYourFolder”)并键入以下命令要容易得多:

svn delete nameOfMissingFile

如果您丢失的文件名包含@字符(例如: retina 特定的艺术品) ,请确保文件名以@符号结束:

svn delete nameOfMissingFile@2x.png@

对于 GIT 存储库:

git rm nameOfMissingFile

我用以下方法来处理这个问题:

将终端和 cd 启动到项目目录(例如: cd/Users/Mauro/Src/Pipero-1.2/)

然后输入以下命令:

find . -name .svn -exec rm -rf { } \;

该命令将递归地搜索名为. svn 的文件(和文件夹)并删除它们

我用下面的方法解决了这个问题:

  1. 检查缺失文件的路径。
  2. 在项目目录中的适当位置创建缺少的文件
  3. 使用“ Add Files to“ project”将它们添加到您的项目中,并且只创建引用(不要复制文件)
  4. 此时警告应该消失。
  5. 从 Xcode 中删除文件,确保单击“ Delete”而不是默认的“ Delete Reference Only”
  6. 你完蛋了。

进入相应的目录并运行:

svn revert fileName

在 XCode 4.2. + 中(可能在4 + 中) ,您可以避免手工操作和命令行:

  1. 选择项目项目导航器(Command-1)
  2. 选择“文件-源代码管理-提交”菜单
  3. 在左窗格中,在它的顶部有三个图标,选择中间的一个-File 视图
  4. 您将看到所有丢失文件的列表
  5. 选择它们并右键单击-放弃更改。这将从 SVN 服务器恢复所有已删除的文件,并将它们放在本地 SVN 文件夹中
  6. 将这些文件拖放到 XCode 项目中(在 Finder 中选择“修改的排序日期”以便轻松找到它们)
  7. 通过 XCode 正确删除这些文件(选择文件并右键单击 Delete)
  8. 提交项目

就是这样:)

所有那些讨厌的警告都消失了!

另外,对于 Xcode 6 + : 在选择文件视图“中间图标”之后,您可以单击左侧的复选框,当您下次提交时,它们将标记为已删除的 SVN!

在我的情况下

  1. 我只要打开 SvnX。
  2. 所有丢失的文件都标记为红色。请选择并删除它们。
  3. 然后所有的 Xcode 警告都消失了。

所有这些都不能解决我遇到的同样的问题。通过进行一些搜索,我了解到我所遇到的问题与 SVN 冲突有关。

我发现在使用命令行时存在冲突:

svn status

那么所有冲突的文件都必须解决

svn resolved filename1 filename2 ...

一旦冲突得到解决,Xcode 就不再发出警告

在 Xcode 禁用 SVN 可以防止这些问题(假设您使用另一个 SVN 工具来管理存储库):

能否在 Xcode 4中禁用版本控制集成?

显然,如果 希望与其他 Xcode 项目一起使用 SVN,这可能不太实际。

我正在使用 svn 并通过以下方法设法解决这个问题

svn delete pathToMissingFile

它将删除丢失文件的本地 svn 副本以及远程存储库中的副本。

或者

svn revert pathToMissingFile

它会丢弃对丢失文件的修改也就是说把丢失的文件放回原处。

这对我很有效:

- > Source Control-> Hide Working Copy Status

那么

- > Source Control-> Show Working Copy Status

Alex 的回答解决了我文件丢失的问题。

我还有一个问题(虽然与丢失的文件无关,但我觉得这个话题更好)

  1. 我需要将一组图像复制到我的项目中。
  2. 我只是创建了一个组(尽管我知道该组不映射到物理文件夹) ,并将图像拖动到组中(选择“ Copy to。."选项)。
  3. SVN 状态显示他们都在 A 区。
  4. 现在,当我进入实际的文件系统,我发现所有的图像在哪里复制到我的项目的根文件夹。因为它看起来不好,我创建了一个物理文件夹内的图像文件夹在我的项目和复制所有添加的图像。
  5. 然后 SVN 将所有文件显示为红色。
  6. 我删除了所有红色文件的引用。
  7. 使用“添加文件”选项,然后从新创建的文件夹添加图像。
  8. 现在 SVN 无法将文件的状态显示为“ A”,我也无法检入它们。
  9. 尝试了很多步骤,比如从不同的文件夹中重新添加,但是没有任何运气。

我通过直接进入存储库,在图像下创建一个新目录来修复这个问题,这样物理文件夹现在就在 SVN 服务器中了

然后,我对源代码进行了更新,并在工作副本中获得了新创建的目录(尽管它没有添加到项目中)。

然后,我复制图像到该目录,并添加到项目中使用“添加文件”选项,这使我回到“ A”状态,我能够检查的文件。

我只是想跟大家分享一下,因为这花了我很多时间。

Anoop

不要直接删除。Xcode 文件夹。从 xcode 项目导航器中删除文件。(右键单击该文件,然后选择移动到回收站)。

现在,要清除此问题,请在相同位置添加相同的文件。并从项目导航器中删除。

在 Xcode5和 Xcode6中,下面的步骤对我很有用

Xcode-> Preferences-> Source Control-> uncheck Enable Source Control

那么

Xcode-> Preferences-> Source Control-> check Enable Source Control

  1. 提交并推动您的更改。
  2. 重启 Xcode。

我什么都不用做。我提交了我的代码,并推高了它。关闭了 XCODE。又把它拉下来了,一切正常。

概述:

在我的例子中,在下面的文件夹路径 /folder1/folder2中有一个名为 Sample的 xcode 项目。

/folder1/folder2/Sample/中有一个 .git文件,这是预期的。

根本原因:

在父目录(/folder1)中有另一个 .git文件导致了这个问题。文件夹可能已被删除,留下了 .git文件

解决方案

rm -rf /folder1/.git

提示

如果将您的项目移动到一个全新的位置,修复了层次结构中的父目录中没有 .git文件的问题,那么这是上述解决方案可行的一个线索。

很简单,

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

不要忘记做 cmd+shift+k