【问题标题】:Xcode 6.4 crashes in Swift breakpointXcode 6.4 在 Swift 断点处崩溃
【发布时间】:2015-07-20 15:08:51
【问题描述】:

在我使用的一个项目中,我无法在 Swift 代码中设置断点,Xcode 在到达其中一个断点时总是崩溃,不管它是“手动”断点还是异常断点。

在其他项目中一切正常,只有一个项目 Xcode 6.4 (6E35b) 总是崩溃。

我尝试清理、删除派生数据、重置模拟器、重新启动 Xcode/Mac - 没有任何帮助。

其他遇到此问题并希望知道有什么帮助的人?

编辑 似乎只在一台机器上出现(Xcode 6.4、10.10.5),而在另一台机器上(Xcode 6.4、El Capitan)则不然。但正如我在 cmets 中提到的,重新安装 Xcode 并没有帮助,还有其他一些我可以重置/删除的首选项吗?

EDIT2 这是 Xcode 崩溃日志文件: https://dl.dropboxusercontent.com/u/119600/Xcode_2015-08-12-074655_Stefans-iMac.crash

【问题讨论】:

  • 我也有类似的问题,断点是在回调函数中还是在完成块中?
  • 对我来说根本不重要。真的,Swift 中的每个断点都会崩溃;在 Objective-C 部分它可以正常工作,但在 Swift 中它总是到处崩溃。
  • 这只是一个项目还是不止一个?也许一个 bug 需要由 Apple 来填补。稍后我会尝试下载这个版本...
  • 只有一个项目,其他项目(Swift少,不知道是不是这个原因)工作正常。
  • 也有这个问题。未解决。似乎在断点位于主线程中时另一个线程正在启​​动时发生。您有任何异步运行的线程吗?我不得不使用日志打印。这在每次运行时都是可重现的。

标签: xcode breakpoints xcode6.4


【解决方案1】:

我会尝试卸载并重新安装 Xcode,看看是否有帮助...我听说过使用这种技术成功解决了类似问题。

只需从 /Applications 中删除整个 Xcode.app,然后从 .dmg 重新安装。如果您不确定二进制文件并且有时间/带宽,请考虑重新下载 .dmg。

如果这不起作用,请尝试以下源代码控制技巧(将“您最喜欢的修订控制”替换为“git”):

  • 尝试清除所有不在源代码控制中的对象
  • 另一种方法:再次将应用签出到新的存储库中(这甚至可以获取可能已提交但稍后被忽略的文件)。
  • 如果不受源代码控制,请获取 .gitignore from here 并将其添加到 git,然后签出到另一个目录(这将留下除源代码、界面构建器、项目文件和资源/资产之外的所有内容)。

我建议将断点代码移动到另一个位置(例如进行函数调用并在函数之前或内部中断)。但是,如果所有的 Swift 代码都有这个问题,那可能就行不通了。

最后,在临时提交(回滚到)之后,在 Xcode 7 beta 中尝试。有点麻烦,因为您必须升级到 Swift 2.0,但如果您保持部署目标不变,则无需更改 iOS 目标。

如果这真的是一个负担和/或它是一个小项目,您可以尝试创建一个新项目并将文件和情节提要迁移过来,但这可能太费力了。

无论哪种方式,既然您注意到它几乎是 Swift 代码中的所有断点,请向 Apple 的错误报告器提交错误。 他们确实需要了解此类问题,因为您似乎并不孤单。

编辑:其他人在哪里看到这个问题? 也许我们可以看到共性——因为这仅在 Swift 项目中报告(到目前为止)。一位同事在 10.10.4 上的 Xcode 6.4 中看到了断点(以及单步执行代码)的这个问题。 (我过去也见过 Xcode 6.4 崩溃)。

我看到提到的操作系统版本 10.10.5 是发生这种情况的目标 (@swalkner);这是一个测试版吗?如果 OS 10.10.4/5 是我们看到这一点的唯一地方,那可能很重要。如果是项目/操作系统交互,重现/修复可能会很棘手,但我鼓励大家向 Apple 提交详细的错误报告(甚至可以链接这篇文章)。

如果您看到此内容,请注意以下几点:

  • 操作系统版本
  • 硬件
  • 目标:模拟器与硬件; iOS 与 WatchKit 应用。
  • 目标 SDK 版本
  • 只有Swift?或者在一个只有 Objective-C 的项目上?混合?
  • 只有一个项目,还是几个?

【讨论】:

  • 卸载 - 只从应用程序文件夹中删除它或更复杂的东西? :)
  • 不幸的是它没有帮助。 defaults delete com.apple.dt.Xcode 也没有
  • 如果您显示堆栈跟踪或其他信息,它可能会有所帮助。如果可以共享存储库(了解它是否是专有的),那么有人可能会尝试复制。
  • 很遗憾,我无法共享存储库...您的意思是什么堆栈跟踪? Xcode 在“正常”断点处崩溃,而不是在异常断点处。
  • @swalkner 我不确定你想要什么来解决这个问题,因为它(在我看来)是 Xcode 6.4 中的一个真正的错误。我还没有看到解决方法,我自己也无法重现。我们有一些关于何时发生这种情况的数据点,但由于缺乏回答者的具体意见,它们非常有限。解决方法显然会很好。您是否尝试过任何基于修订控制的尝试来获得相关代码的真正干净副本?
【解决方案2】:

这是一个远射,但如果它有效,请告诉我:

取消选中“始终显示 Dissasembly”检查

Debug > Debug Workflow > Always Show Disassembly

在旧版本的 Xcode (

Product > Debug Workflow > Show Disassembly When Debugging

【讨论】:

    【解决方案3】:

    我刚刚花了几个小时试图解决完全相同的问题。

    起初我以为,它是由于在与 Xcode 6.4 相同的机器上安装 Xcode 7 而开始的。问题当然不谋而合。

    但是,由于有版本控制,我可以查看自使用 Xcode 7 打开项目后哪些文件发生了变化。

    images.xcassets 文件已更改。恢复这个文件可以阻止 Xcode 在每次遇到断点时崩溃。

    我不确定这是否有帮助,但一定要查看 images.xcassets,如果需要,删除它,重新创建它并确保它的设置 100%。它确实解决了我的问题。

    【讨论】:

    • 重要信息 - 您知道 images.xcassets 究竟发生了什么变化吗?真的很奇怪……
    • 我相信 Xcode 7 将 x3 图像添加到文件中,或者至少尝试过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2015-10-26
    • 2014-05-15
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多