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


166

我最近升级到了Xcode 4(这是一个很好的升级),但是现在我收到了一些以前没有得到的警告。我浏览了论坛和其他SO帖子,但没有找到解决方法。

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

我环顾四周,却找不到如何告诉Xcode这些文件已消失的方法,请停止向我发出警告。这是我在Xcode4中获得的屏幕截图,但在Xcode 3中却从未获得。

缺少文件警告Xcode 4


如果您是我,我总是将文件导入到您的项目中,而不仅仅是在磁盘上保留指向它们的链接。如果以后再移动文件,它确实使您免于头痛。
sudo rm -rf

Answers:


297

这些解决方案太困难了。问题是您已经从文件系统中删除了该项目,但是SVN仍然认为它们在那里。从SVN删除项目将起作用,与删除.svn文件夹相同,但它将破坏您的存储库!

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

svn delete nameOfMissingFile

如果丢失的文件名包含@字符(例如,视网膜特定图稿),请确保文件名以@符号结尾:

svn delete nameOfMissingFile@2x.png@

对于GIT存储库:

git rm nameOfMissingFile


20
我遇到了同样的问题,并通过终端使用以下方法解决了:svn rm --force nameOfMissingFile
ReachWest 2011年

1
这比标记为正确的答案更好。从SVN控制下的项目中删除SVN文件夹可能会很痛苦。最好使用SVN解决问题。我按照这个答案解决了自己的问题,但是我拥有了Cornerstone的奢华。但否则很酷。谢谢:)
jowie 2011年

1
这似乎不适用于我。我会重新添加文件,然后将其删除,但是在构建中仍会出现相同的警告。我什至尝试将文件添加回项目,然后删除它们。还是一样的问题。
延义

10
它对我有用,但是如果使用svn,我必须先在其中创建一个虚拟文件才能删除。因此,您必须触摸nameOfMissingFile,然后svn删除nameOfMissingFile --force
Maciej Swic 2012年

9
我还必须退出并杀死xcode才能解决问题。
Twilite 2012年

55

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

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

就是这样:)

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

Xcode 6+的其他功能:选择文件视图“中间图标”后,您可以单击左侧的复选框,这将在下次提交时将它们标记为SVN已删除!


1
只需要进行到步骤5。我实际上并没有SVN中的文件。
达伦·里利

我重构了一个项目,该项目影响了另一个共享代码的项目,并且XCode抱怨缺少与SVN相关的文件。在手动浏览项目源xml并没有发现任何内容之后,花了我一段时间才弄清楚这是SVN问题。
danfordham 2014年

50

在Xcode5和Xcode6中,以下步骤对我有用

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

然后

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


在Xcode 8.3.2上,这工作了大约十分钟,然后所有警告又回来了:(
Bob

27

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

我通过从svn分离项目解决了这个问题。

一个。打开终端并输入以下命令:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

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

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

C。重新启用隐藏文件:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

d。现在,您的项目已与svn分离,并且不再遇到构建问题。

e。将项目重新添加到svn或其他内容。

我本人还是一个初学者,这是我处理该问题的方式,因此我不确定这是最好的方式。无论如何,问题解决了。


3
搞乱SVN隐藏的文件夹和文件不是一个好主意,最终可能会导致SVN混乱。最好使用svn delete命令整理丢失的文件。
jowie 2011年

这就是我最终选择的道路。是的,它删除了所有已保存的SVN信息,但这实际上是其他人放入我不想保留的特定项目中的东西。我想从头开始,不关心维护特定版本。
Scott

我只是通过重新启动“ killall Finder”。现在问题解决了。谢谢
JHHoang

9

这对我有用:

File-> Source Control->Hide Working Copy Status

然后

File-> Source Control->Show Working Copy Status


6

我通过以下方式解决了它:

  1. 检查丢失文件的路径。
  2. 在项目目录中的适当位置创建丢失的文件
  3. 使用“将文件添加到”项目”将它们添加到您的项目中,并仅创建引用(请勿复制文件)
  4. 此时警告应消失。
  5. 从Xcode中删除文件,确保您单击“删除”,而不是默认的“仅删除引用”
  6. 你完成了。

4

我遇到了该错误,除了在该位置创建一个空文件然后将其删除之外,没有其他方法可以解决它。我从项目中删除的文件发生了这种情况,并且清理,构建和手动删除“派生数据”目录也不起作用。我相信这是一个错误,如果它包含多个文件,可能会很痛苦。


悲伤的是,希望有一个解决此问题的简便方法。我大约有20个文件,因此创建然后删除将非常麻烦。
Scott

4

我也遇到了这个问题,正如user151215所描述的,这是由于.svn文件夹引起的。

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

令人讨厌的.svn文件夹将包含一个包含您丢失的文件的条目文件。因此,您可以使用Teminal并搜索缺少的文件名字符串,例如grep -lir BagController.m yourRootDevDir / *

比在finder中启用隐藏文件更简单,只需使用终端即可。cd到相关目录,然后mv .svn〜/ .Trash

希望这可以帮助!



3

我使用以下方法来解决这个问题:

启动终端,并cd到项目目录。(例如:cd /Users/Mauro/Src/Pippero-1.2/)

然后输入以下命令:

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

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


这对我来说不起作用,但是进入每个目录并删除单个.svn文件夹就可以了。你真是个大麻烦,我的男人!
gonzobrains 2011年


2

我正在使用svn并设法通过解决此问题

svn delete pathToMissingFile

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

要么

svn revert pathToMissingFile

这将丢弃对丢失文件的更改,这意味着将丢失文件放回原位置。


1

以上所有问题都无法解决我遇到的同类问题。进行搜索后,我了解到我遇到的问题与SVN冲突有关。

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

svn status

然后必须解决所有冲突的文件

svn resolved filename1 filename2 ...

冲突解决后,警告从Xcode消失了




0

生成后按Cmd + 7,然后选择最新的生成操作。看起来有点像旧的Xcode吗?:) 在此处输入图片说明


是的,它看起来像旧的XCode,但是它不能解决新的XCode表示我缺少文件的问题。我喜欢这种视图,但这似乎只是用XCode掩盖了问题。
Scott

0

就我而言

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

0

亚历克斯的答案解决了我丢失文件的问题。

我还有另一个问题(尽管它与丢失的文件无关,我认为这将是更好的话题)

  1. 我需要将一组图像复制到我的项目中。
  2. 我只是创建了一个组(尽管我知道该组未映射到物理文件夹)并将图像拖到该组中(选择“复制到..”选项)。
  3. SVN状态均在“ A”中显示。
  4. 现在,当我进入实际的文件系统时,我发现所有图像都复制到了项目的根文件夹中。由于看起来不太好,我在项目的images文件夹内创建了一个物理文件夹,并将所有添加的图像复制到该文件夹​​中。
  5. SVN然后将所有文件显示为红色。
  6. 我删除了所有红色文件的引用。
  7. 然后使用“添加文件”选项,从新创建的文件夹中添加图像。
  8. 现在,SVN无法将文件状态显示为“ A”,并且无法将其检入。
  9. 尝试了许多步骤,例如将它们从另一个文件夹中再次添加到垃圾桶等,但是没有任何运气。

我通过直接进入存储库来解决此问题,在图像下创建了一个新目录,以便物理文件夹现在位于SVN服务器中

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

然后,我将图像复制到该目录,并使用“添加文件”选项将其添加到项目中,这使我恢复为“ A”状态,并且能够检入文件。

只是想分享这个.....因为我花了很多时间。

-anoop


在这种情况下,请转到终端,然后转到项目的根目录。使用“ svn mkdir name_of_the_folder”创建文件夹。使用Finder将文件从name_of_the_folder拖放到您的项目(或文件夹本身以添加所有文件)。问题是当您创建没有“ svn mkdir”文件夹的文件夹时,该文件夹没有添加到SVN中。
亚历克斯

0

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

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


0

我什么也没做 我提交了我的代码并将其推高。关闭XCODE。再次拉下来,一切都正常。


0

概述:

在我的情况下Sample,以下文件夹路径中有一个xcode项目/folder1/folder2

.git里面有一个/folder1/folder2/Sample/预期的文件。

根本原因:

.git父目录(/folder1)中还有另一个文件引起了该问题。文件夹可能已被删除,留下了.git文件

rm -rf /folder1/.git

线索

如果将您的项目移动到一个全新的位置可以解决.git父级目录中没有文件的问题,那么上述解决方案可能会起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.