【问题标题】:Xcode 8.3 Indexing & Building Extremely SlowXcode 8.3 索引和构建极慢
【发布时间】:2017-12-30 09:49:28
【问题描述】:

我在这里阅读了许多关于此问题的类似帖子后发布此内容,并且没有任何解决方案对其他人无效...

  • Xcode 版本 8.3.3 (8E3004b)

  • Swift 3.1


我尝试过的事情

  • 删除派生数据文件夹
  • 删除工作区文件
  • 清理构建文件夹
  • 清理构建
  • 重新安装 Xcode(完全删除后)

我还查找了 Swift 问题:

  • 删除了所有连接字符串
  • 清理了 Swift 数组和字典
  • 添加了整个模块的优化

这一切都是在上次 Xcode 更新 8.3.3 之后开始发生的。我的项目在几秒钟内就完成了编译,现在我必须等待至少 15 分钟才能将其编入索引,然后在我更改所有代码后等待 5 分钟进行编译。

构建时,卡在“编译 Swift 源文件”。有没有办法让我查看它实际上卡在哪里?

大更新

我几乎尝试了所有方法。阅读每篇文章、帖子等。没有任何效果。我的项目是在 10.0 之后创建的。

解决方案 创建一个新项目并复制每个文件都有效!过去需要 8-9 分钟来构建。现在不到 2 秒!

【问题讨论】:

  • 您确定这不是硬件问题吗?此外,您应该尝试重新安装 Xcode。话虽如此,Xcode 8 对每个人来说都非常慢,Xcode 9 会解决这个问题!
  • 我更新了 OP,实际上我确实尝试过安装 Xcode。只是一座建筑不应该与任何硬件相连?

标签: ios swift xcode compiler-errors


【解决方案1】:

Apple 知道这个问题,并表示 Xcode 9 beta 的性能会更好。请注意,如果您不想更新到 Swift 4,您可以继续使用 Xcode 9 在 Swift 3 模式下编译。最大的限制是在 Xcode 9 最终版本之前您将无法将项目提交到 App Store .

此外,Xcode 9 包含一个新的构建系统。默认情况下你不会得到它:你必须为这个项目打开它。选择 File > Project Settings 并将弹出菜单切换到 New Build System (Preview)。这是实验性的,但最终它将成为默认的构建系统,因此知道这是否会产生明显的差异会很有趣。

如果您不想更新到 Xcode 9 测试版,则只需进行二进制搜索:注释掉所有代码并开始将其逐段添加回来,直到找到导致问题的那一段.

【讨论】:

  • 在 Xcode 9 beta 上运行后,编译仍然需要很长时间,虽然没有以前那么慢。我真的希望 Apple 尽快解决这个问题!
  • @Gizmodo 感谢您的反馈!我很高兴它更好,但如果它仍然需要很长时间,Apple 肯定想知道它。如果有任何方法可以将这个项目打磨成您愿意在错误报告中发送给 Apple 的内容,那么您就是在帮助拯救宇宙。
  • @Gizmodo 有件事我完全忘了提:新的构建系统。默认情况下你不会得到它:你必须为这个项目打开它。选择 File > Project Settings 并将弹出菜单切换到 New Build System (Preview)。知道这是否会产生明显的差异会很有趣。这最终将成为默认的构建系统,因此您可以更好地了解 Apple 的想法。
  • 明白。我知道我应该想办法提交一个错误,但是这里有很多复杂性。用 Swift 3.1 编写,即使没有更新到 Swift 4,它也会对某些 AVFoundation 方法大喊大叫,说它们是错误的。我刚打开,Apple 自己的 AVCam 项目,最近更新为 iOS 11、Xcode 9,即使这样也被骂了。
  • “即使没有更新到 Swift 4,它也会在某些 AVFoundation 方法上对我大喊大叫,说它们是错误的”但这是一个完全不同的问题:与构建时间无关。如果您不了解如何在 Xcode 9 中针对 Swift 3 模式进行更新,您可以将其作为一个单独的问题提出。
【解决方案2】:

解决这个问题的最佳方法是在编译代码时找出构建在做什么。这是一个非常有用的工具:https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode

当你运行这个工具时,它会告诉你哪些方法编译时间最长,然后你就可以修复它们。完成此操作后,您还可以尝试我在此处给出的答案以减少构建时间:Extremely long compilation times with Swift in Xcode

【讨论】:

  • 我试过分析仪。它表明最长的功能最多为 7 秒。其余的要小得多...
猜你喜欢
  • 2017-01-25
  • 2016-04-08
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-12
  • 2017-05-20
相关资源
最近更新 更多