Xcode:在项目构建中发出“工作副本中缺少文件xxx.png”的问题


265

删除/添加一些png文件到项目后,我在构建项目时收到消息。

“工作副本中缺少文件ProjectPath \ aaa \ xxx.png。”

所有这些文件都在项目中,并且应用程序正在运行。但是,这些消息很烦人。看了.plist文件,但没有提及这些文件。我该怎么做才能删除这些消息?


Answers:


495

提交更改后,警告将立即消失(Xcode 8)。


2
发现将某些文件移到其他目录后,我只需要在git下提交更改即可。
克里斯·利夫达尔

@LearnSwift清除Cmd + Shift + K,删除〜/ Library / Developer / Xcode / DerivedData / *?
亚历山大·瓦森宁

2
@AlexanderVasenin都没有
学习Swift

7
对我来说,简单地进行更改就足够了。很高兴知道。
charmingToad

13
如您所述,我确实确保提交并推送我的最新更改。但是,这样做并不能消除错误。所以然后我做了Xcode> Source Control> Discard All Changes,它为我清除了所有错误。
EdwardM

97

看来这个问题可能有不同的原因,但通常与源代码控制软件有关。

就我而言,我通过转到Git并再次添加文件来解决了该问题。我的意思是运行以下命令:

git add .

安装Xcode 8并将代码升级到Swift 3之后,我遇到了300多个需要语法更正的问题(大规模项目)。取而代之的是,我从备份中恢复并升级到了迅速的2.3版本……除了一堆这样的“缺失”消息外,一切都进行得很好。该命令就像一个咒语一样工作-我又回来了!
丹·罗斯

这对我有用。当我删除过去在Pod中使用的东西取而代之的迦太基时,问题就开始了
塞巴斯蒂安·萨斯特

1
这也对我有用。似乎该文件受源代码控制,并且git也需要更新。
Shardon '16

在git commit之后,警告消失了
carmen_munich

3
对于其他用户:您必须通过执行'git add'将其放置在Xcode项目的根文件夹中。命令:/ MyXcodeProjects / AwesomeApp /
Philip Borges

59

您也可以通过取消选中来禁用源代码控制

Xcode->首选项->源代码控制->启用源代码控制

如果您通过命令行或其他任何应用程序进行管理。


这为我做到了,很烦在IDE中看到它,他们应该要么很好地支持源代码控制,要么根本不支持源代码控制
samiq

1
我已经执行了两个操作:1)“取消选中”,2)“选中”启用源代码管理。警告消失了。
维克多

58

在XCode-> SoureControl中:

Update+ Refresh Status为我做到了。


我认为这可能是由于文件名中包含“ @”的图像,例如“ @ 2x”和“ @ 3x”约定。SVN使用该符号进行修订语法(在命令行中使用SVN时可以对其进行转义,您只需在末尾添加“ @”,因为最后一次出现是它用来尝试确定修订信息的符号)。只需运行Update就可以为我工作。当我添加一些新图像时,实际上我还必须在“文件检查器”窗格的2x / 3x变体中手动选择“添加”。奇怪的。
Android3000 2016年

1
这个!很重要。如果重命名包含文件的文件夹,也会出现此问题。换句话说,xcode会警告我们,因为我们尚未提交代码!拍手拍手
Warpzit '16

4
这对我有用。我不得不关闭Xcode并再次打开项目并运行。
jaytrixz

44

就我而言,源控件中缺少该文件。
要解决此问题,我必须丢弃此文件(请注意,仅丢弃丢失的文件,而不是整个项目):

  1. Xcode->源代码控制->提交
  2. 右键单击丢失的文件
  3. 选择放弃更改

它对我有用,我确实删除了DerivedData文件夹,并警告文件为“ db.xcindexdb”
tontonCD

1
首先,我确保提交并推送我的最新更改。然后我执行了Xcode>源代码管理>放弃所有更改,它为我清除了所有错误。
EdwardM

19

禁用源代码管理,清理构建文件夹(Alt+Shift+Cmd+K),然后再次启用源代码管理。

Xcode->首选项->源代码控制->启用源代码控制


1
正确答案...但是确切答案@emrekyv在3个月前发布...他得到了投票
eric

@eric他建议只是禁用源代码控制,我展示了如何使其正确工作。
乔治,

18

就我而言,Xcode以某种方式找到.svn了引用丢失文件的旧目录。我必须在项目文件夹上方一层找到这些.svn文件。删除后,我重新启动了Xcode,一切都很好。


是的,当您在版本控制下仍从版本控制中引用某个项目(在我的情况下为svn)时,从该项目中删除某个项目时,会发生这种情况。使用“ svn更新”还原丢失的文件,然后使用“ svn删除”以正确的方式删除它们,这使我的问题消失了。
ChrisB '16

12

当我仍在使用Xcode 7时,从我的Xcode项目中删除了很长时间以来的少数文件,我遇到了类似的问题。

我的解决方案是:

  1. 使用Xcode抱怨的名称创建文件(它们不需要任何内容​​)
  2. 将文件添加到我的Xcode项目中(在Xcode中,右键单击我的主项目目录,单击“ 将文件添加到my_project_name”,然后选择刚刚创建的文件)
  3. 选择新添加的文件并将其删除-选择移至回收站。

这摆脱了对我的警告。


这也对我有用。复制现有项目以生成派生后,我遇到了问题,但功能减少了⇒源文件更少。
Stefan'Dec

9

要添加到亚历山大·瓦塞宁的答案中...

首先,我致力于并推动我的改变

Xcode主菜单>源代码管理> 提交

然后我放弃了所有更改以摆脱错误

Xcode主菜单>源代码管理> 放弃所有更改

之后,错误提示“工作副本中缺少文件xxx.png”。


如果项目不使用版本控制或XCode不支持的版本控制系统,该怎么办。
马丁

8

当您删除Xcode上的文件但没有告知svn服务器时,就会发生这种情况。

转到命令行工具,然后直接删除文件。

svn delete missingFile.m 

并提交

svn commit -m "Deleting file"

请注意,如果删除.svn文件夹,警告将消失,但您将失去与svn服务器的通信。


5

我解决了。

只需打开您的第三方SVN工具,找到未命中的文件,还原;就这样。


5

我有同样的问题,并通过添加git解决了它。打开命令行工具

cd "project folder path"
git add .

稍后,重新启动Xcode项目并再次打开您的项目。


如果您不使用git怎么办?
马丁

4

在目标上显示->构建阶段->复制捆绑资源。并清理构建文件夹命令+ Shift + Alt + K


3
谢谢,但它们不在“构建阶段”中,清理构建文件夹也无济于事。
伊班2014年

4

我不得不手动进入终端并使用删除文件,git rm ProjectPath\aaa\xxx.png然后提交。之后,一切正常。


3

转到XCode 8后,每个项目都可以使用它。这解决了它:

在按下Option键的情况下,产品(在标题菜单中)->清理构建文件夹。


2

就我而言,我在模拟器中的旧项目中有错误的数据。通过模拟器中的重置内容和设置解决:

模拟器->重置内容和设置...


1

对我来说,以下工作:

由于我从未使用过Git,也从未使用过它,所以我创建了一个新项目(XCode 8,我看不到通常的“使用Git”,或者标记了对勾)。然后我直截了当地删除了这个新项目中的所有文件。转到旧的混乱项目,复制项目文件夹中的所有内容,返回到新创建的项目,粘贴旧内容,然后打开-关于几个月不存在的文件的所有警告均已消失。手指交叉。


1

我遇到了同样的问题,只需将指定文件从finder中拖到项目导航器中(确保在对话框中选择了“复制文件”)并提交文件即可解决。


1

这些警告不是构建警告,它们与您的SVN存储库有关。

所显示的目录不再存在是正确的,CocoaPods Pods/Headers/{Private,Public}现在将标头存储在其中。您必须更新工作副本以反映这些更改。


我没有在XCode内使用版本控制,因此遇到了问题。
马丁

1

就我而言,我在Xcode项目窗口中拖放了一些文件以添加它们。它将副本复制到我的源目录中,但没有将它们放到我想要的位置(将它们放置在目录的根目录中,我希望将它们放置在子目录中)。不假思索,我只是将它们抓住在Finder中,然后将它们移到了我想要的目录中。当然,返回到项目窗口后,找不到它们了,所以我在窗口中将其删除并重新添加。编译后,我开始收到这些错误。

我认为,正如上面提到的那样,这是一个git问题,但是当我运行“ git ls-tree --full-tree -r HEAD”时,我根本看不到文件?

无论如何要修复它,我所做的就是使用“添加文件...”菜单命令将每个文件添加到默认位置,进行干净的构建,然后从项目窗口中删除它们(使用移至回收站),然后它消除了所有错误。



1

这对我有用:Xcode->(“选项+单击”)
Product- > Clean Build Folder ... 比重启xCode


0

就我而言,这是git和不区分大小写的文件系统的问题。

我无意中两次提交了相同的文件,但使用的文件路径仅在以下情况下不同:

MyProject/Resources/foo.png
MyProject/resources/foo.png

Xcode抱怨缺少文件之一。

通过删除有问题的文件并重新添加来解决。

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit

0

这绝对与源代码管理有关。我重命名并移动了两个未提交的plist文件,但出现此错误。我正在使用svn。我可以Source Control - Commit通过删除旧的引用文件来解决此问题。


我遇到了问题,我没有使用XCode意识到的版本控制。所有版本控制都在XCode之外完成。
马丁
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.