42

我刚刚升级到 XCode 和 Swift 的最新 Beta 版本,但是在使用转换器后,我的应用程序项目现在有超过 200 个构建时间黄色错误,所有这些错误都说明 /"projectDirectoy"/DerivedData/XXXXXXXXX/XXXX/XXX/xXXX/xXX is missing from工作副本... 其中 XXXXX 代表 DerivedData 文件夹中的各种文件路径。

我尝试从错误中提到的位置删除 DerivedData 文件夹。

我已尝试删除 ~/Library/ 中的 DerivedData 文件夹中的所有内容。

我曾多次尝试清理项目,重新启动并重新构建。

我曾尝试在首选项中关闭源代码控制,但我不明白为什么我应该关闭它,因为它在我更新之前就已打开,所以我希望它保持打开状态。

这些错误似乎不会消失。

有任何想法吗?

4

9 回答 9

94

更新到 Xcode 8 GM 后,我遇到了同样的警告,超过 350 个。其中大多数在资产目录中的 .swift 文件和图像。

它基本上是一个源代码控制问题,似乎主要出现在您移动/删除项目文件时。这些要么是新的警告,要么是 Xcode 8 在源代码控制方面比 Xcode 7 严格得多。

在谷歌搜索后,我找到了一些答案,但它们对我来说似乎很复杂,例如使用命令行,甚至建议关闭并重新打开源代码控制。

这是适用于我所有项目的方法。

捷径

先试试这个,如果它不起作用,那就做很长的路

1)转到源代码管理菜单(窗口和帮助旁边的顶部菜单),然后单击刷新状态

2)再次进入源代码管理菜单并单击提交

3)提交窗口应该打开所有 Xcode 认为必要的提交。因此,只需在文本字段框中输入一个提交,然后按提交按钮。

重复步骤 1-3,直到打开提交菜单时 Xcode 不再选择任何项目。在 Xcode 自动选择的所有项目都已提交之前不要转到第 4 步,否则在执行第 4 步时可能会出错。

4)再次打开提交窗口,如步骤 3 中所述,Xcode 不应再选择任何项目。但是,您仍然应该在左侧边栏中看到一些导致警告消息的项目。

右键单击一个项目并按全选,在文本字段中输入一个提交,然后按提交按钮。一切都应该完成并且警告/错误应该消失(可以选择再次按 CommitMenu->Refresh Status)。

如果它没有完成,则关闭/重新打开 Xcode 并重做步骤 1-4。

如果这也不起作用,那么漫长的道路应该解决它。

很长的路要走

如果您使用源代码控制并定期进行提交,则可以选择执行第 1 步,然后您应该能够直接进入第 11 步。

1)清理xCode派生数据(可选)

您通常不必这样做,因此在第一次尝试时跳过此步骤并转到第 3 步。

转到 Xcode 首选项,单击“位置”选项卡,然后转到高级。单击高级按钮旁边的小箭头以打开派生文件夹的路径。完全关闭 Xcode,然后删除该派生文件夹中的所有内容。

正如成员 Krivvenz 在他的回答中所指出的那样,您可能必须选择这样做。我不必自己做这个,所以可以跳过这个,只有在它不起作用时才尝试。

“我还必须将我的 DerivedData 选项从 relative 更改为 Custom,这可以在 Xcode > Preferences > Locations 选项卡中找到。”

2)重新启动您的 Xcode 项目并等待索引完成。这可能需要几分钟,因为您刚刚删除了派生数据。

3)转到源代码管理菜单(窗口和帮助旁边的顶部菜单),然后单击刷新状态

4)再次进入源代码管理菜单并单击提交

5)提交窗口应该打开所有 Xcode 认为必要的提交。我有超过 250 个,因为我以前从未使用过源代码控制。

6)点击右下角的提交更改

7)我得到一个错误并且操作没有完成(如果它对你有用,那么请转到 11)

8)转到源代码管理菜单并单击刷新状态

9)转到源代码管理并单击提交

10)单击右下角的提交更改。这次它建议减少大约 30 次提交,我没有收到任何错误。如果您在第二次尝试时仍然遇到错误,请尝试完全关闭 Xcode,然后重新打开它,然后重复此步骤。

11)转到源代码管理菜单并单击刷新状态

12)转到源代码控制菜单并单击提交

13)这一次应该没有 Xcode 推荐的更改,但是您仍然会在左侧的提交菜单中看到很多文件(未选中)。正是这些文件引发了工作副本警告,这些警告也应该仍然存在。

14)在提交菜单的左侧栏中选择每个文件。您可以右键单击并按检查所有

15)点击右下角的提交更改

16)我得到一个错误,操作没有完成。所以我再次尝试了同样的错误,所以我关闭了提交菜单。如果它为您完成,那也很好。

17)转到源代码管理菜单并单击刷新状态

砰,所有的警告都消失了。

18)完全关闭你的项目和 Xcode

19)再次打开您的项目

20)转到源代码管理菜单并单击刷新状态

21)转到源代码管理菜单并单击提交

22)我突然又建议了 150 多个提交。确保选择了所有建议,然后单击提交,它应该完成且没有错误。

23)清理你的项目(产品->清理)

24)转到源代码管理菜单并单击提交。不需要进行任何更改,左侧边栏中也应该没有文件。

毕竟这一切我没有更多的警告,不需要删除源代码管理,一切都照常工作。

如果您将来遇到更多错误,比如说因为您再次移动了一个文件,而不是再次提交,确保所有内容都被选中。

希望这可以帮助。

于 2016-09-12T14:33:05.143 回答
13

这是 XCode 中的一个错误。git-commit 项目树后,丢失的文件警告就会消失。

于 2016-11-01T15:03:55.240 回答
4

我在父文件夹中有一个流氓 .git 文件夹,它没有“去”任何东西-

在“源代码管理”菜单下验证您的所有“工作副本”是否实际连接到真正的源代码管理文件夹

这些“解决方案”中没有一个对我有用,除了这个删除流氓 .git 文件夹

于 2016-09-19T15:33:42.760 回答
3

删除 DerivedData 和 git add 。从终端,即使没有提交,也为我解决了这个问题。

于 2017-01-23T02:44:03.503 回答
2

只需显示所有隐藏文件,然后删除 git 文件夹打开终端并运行此命令以显示所有隐藏文件“默认写入 com.apple.finder AppleShowAllFiles YES killall Finder”

于 2016-09-22T02:39:26.057 回答
1

按着这些次序。

  1. 打开 svn 或源代码树。
  2. 这些文件将在那里。
  3. 从源代码树或 svn 中删除这些文件。
  4. 现在来到 xcode 项目。
  5. 现在提交代码一次。所有的警告
于 2016-09-28T11:11:33.073 回答
1

我通过将.git 目录删除到“yourProject”/Pods 中解决了这个问题。并且可以删除“yourProject”主目录中的.git 目录

于 2016-10-01T22:37:27.640 回答
1

我想我现在已经通过删除我的 DerivedData 文件夹的所有实例并按照 crashoverride777 的说明解决了这个问题。我还必须将我的 DerivedData 选项从 relative 更改为 Custom,这可以在 Xcode > Preferences > Locations 选项卡中找到。

于 2016-10-04T10:21:08.833 回答
0

我从我的项目目录中删除了旧模型对象并解决了问题。

于 2017-02-15T12:31:38.210 回答