更新到 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。
如果这也不起作用,那么长路应该修复它。
Long Way
如果您使用源代码管理并定期进行提交,则可以选择执行步骤 1,然后您应该能够直接进入步骤 11。
1)清理 xCode 派生数据(可选)
您通常不必执行此操作,因此第一次尝试时请跳过此步骤并转到步骤 3。
转到 Xcode 首选项,单击“位置”选项卡,然后转到高级。单击高级按钮旁边的小箭头,打开派生文件夹的路径。完全关闭 Xcode,然后删除该派生文件夹中的所有内容。
正如成员 Krivvenz 在他的回答中善意地指出的那样,您可能必须选择这样做。我不必亲自执行此操作,因此也许可以跳过此操作,仅在不起作用时才尝试。
“我还必须将 DerivedData 选项从相对于 Custom 的选项更改为 Custom,可以在 Xcode > Preferences > Locations Tab 中找到。”
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)转到源代码管理菜单并单击提交。不需要进行任何更改,左侧边栏中也不应该有任何文件。
毕竟,我没有更多的警告,不需要删除源代码控制,一切都恢复正常。
如果将来您遇到更多错误,比如说因为您再次移动了文件,而不仅仅是再次提交,确保选择了所有内容。