【问题标题】:Swift 3 / Xcode 8 Upgrade - 100's of DerivedData files missing from working copy errorsSwift 3 / Xcode 8 升级 - 工作副本错误中缺少 100 个 DerivedData 文件
【发布时间】:2016-10-24 16:08:41
【问题描述】:

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

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

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

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

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

这些错误似乎不会消失。

有什么想法吗?

【问题讨论】:

  • 我只是忽略它们,它们似乎是一个 xcode 错误,对实际构建没有影响。
  • 根据我的经验,删除 DerivedData 文件夹的唯一可靠方法是先关闭 Xcode。这将在下一次构建时强制进行完全重新编译。有时 Xcode 似乎会阻止删除该目录,或者至少阻止删除其中的一些内容。
  • 我试过 Vince 但它不起作用。您会在 XCode 顶部看到一条消息,指出它正在索引和链接文件,但错误仍然存​​在。我可能会尝试重新创建我的项目,然后将每个文件复制并粘贴到一个新项目中。
  • 您找到解决方案了吗?自从升级到 xCode 8 GM 后,我遇到了同样的问题。我找到了一些建议,但我不明白。
  • 我实际上设法修复了它。如果您仍然有这个问题,退房可能会回答。

标签: ios xcode swift swift3 xcode8


【解决方案1】:

更新到 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)点击右下角的commit changes

7)我遇到了一个错误,操作没有完成(如果它对你有用,请转到 11)

8) 进入源代码管理菜单并点击刷新状态

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

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

11) 进入源代码管理菜单并点击刷新状态

12) 进入源代码控制菜单并点击提交

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

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

15)点击右下角的commit changes

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

17) 进入源代码管理菜单并点击刷新状态

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

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

19)再次打开您的项目

20) 进入源代码管理菜单并点击刷新状态

21) 进入源代码管理菜单并点击提交

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

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

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

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

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

希望这会有所帮助。

【讨论】:

  • 一提交就为我工作。
  • 太棒了。似乎 Xcode 8 对这些警告更加严格。当我删除不在 Xcode 中的文件时,我也会得到它们
  • 最佳答案。我必须一一选择 542 个文件来提交。
  • 太好了。我感觉到你的痛苦,我有大约 350-400 并且它花了很长时间。
  • 谢谢!这对我有用,应该标记为正确答案,imo。
【解决方案2】:

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

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

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

【讨论】:

  • 为我工作。为了澄清我对丢失文件的警告位于工作区 A 中,而丢失的文件路径全部用于其他工作区或项目。很明显,我的问题并不是我的 git 中需要添加的真正丢失的文件。我发现 .git 文件夹是我的父文件夹。修好了!
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    按照这些步骤操作。

    1. 打开 svn 或源代码树。
    2. 这些文件将会送到那里。
    3. 从源代码树或 svn 中删除这些文件。
    4. 现在来到 xcode 项目。
    5. 现在提交代码一次。 所有警告

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 感谢您的反馈。如果您不介意,我会将其包含在我的答案中。
        • 是的,不用担心。终于整理好了!
        【解决方案7】:

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

        【讨论】:

        • 如果您在主项目上使用 git,这就是答案。只需进行本地提交 -am “部分完成 swift 3 过渡”
        【解决方案8】:

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

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            猜你喜欢
            • 2017-02-20
            • 2011-12-20
            • 1970-01-01
            • 2014-10-09
            • 2017-02-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多