Swift崩溃 "EXC_BREAKPOINT 0x0000000... "

29

我的iOS应用程序中发生了三种不同的崩溃;代码位置不同,但是所有三种都有"exc_breakpoint 0x000000..."。我无法复现它们,它们发生在不同的设备和不同的iOS版本上。

正如提到的那样,我无法重现它们,我们的测试人员中没有人遇到过这样的崩溃,但根据Crashlytics的数据,它们发生太频繁以至于不能忽略。

最重要的是我对EXC_BREAKPOINT 0x0000...这个东西感兴趣,比如解包nil可选项、类型转换错误等。

第一个:

进入图像描述

第二个:

进入图像描述

第三个:

进入图像描述


1
你需要添加更多细节,比如在 ...ViewController.swift 的第202行发生了什么。另外第三次崩溃似乎与前两次没有任何关系。 - David Wong
1
这个有更新了吗? - Gustavo_fringe
1
我遇到了同样的问题,但找不到解决方案。而且,无法重现这个问题。 - Jiang Wang
你们找到解决方案了吗?我已经有超过6个月遇到同样的问题了...虽然受影响的用户不多,但无论如何,我想解决这个问题。@JiangWang - AlexWoe89
我仍然面临这个问题...无法重现它!有任何解决方案吗?? - Chris
4个回答

17
我也遇到了类似的崩溃日志,即EXC_BREAKPOINT 0x000000010006a4d4。正如所述,我们的QA都无法复制它,但只发生了几次。在我的情况下,我发现了所有崩溃发生的模式。它发生在iPhone 6S和iPhone 6设备上,并且在崩溃发生时两者仅有2%至4%的RAM可用。
我认为这是由于内存不足导致的问题。崩溃仅在应用程序委托的少数指令后发生,指向随机指令。Crashlytics已经声明问题出现在Xcode中。您可以在此处阅读来自此处的答案。
我在某个地方读到,当Swift不知道内存发生了什么事情时,EXC_BREAKPOINT会发生,即我猜测在我的情况下,由于内存较低而导致内存问题。
我已将我的Xcode升级到7.3,并与Swift一起进行测试以复制该崩溃。让我们看看会发生什么。我将在测试后发布结果,看看是否会复制崩溃。
希望这能帮助到某些人。

我有同样的观察。看起来像是Swift的问题。 - Valentin Shergin
你能再重复一遍应用程序崩溃的情况吗? - Alexander Khitev
4
有更新吗?我遇到了类似的问题。出现了相同的模式,但发生在相同的代码行上。这件事还在发生吗?我目前使用的是Xcode 9和Swift 3。 - Gustavo_fringe
2
我也遇到了这个问题,它影响了很多用户。 Crashlytics 报告说他们有超过 130 MB 的可用 RAM。 此外,它报告了代码行上发生的问题,而这些代码行实际上并不存在。(例如,AppDelegate.swift(476),即使该文件只有100多行。) - horseshoe7
你们找到解决方案了吗?我有相同的问题已经超过6个月了... 受影响的用户不算多,但无论如何,我都想修复它 - @horseshoe7 - AlexWoe89
你的应用程序使用了多少内存?我遇到了同样的问题,在RAM小于等于3%的设备上看到了这个崩溃。我的应用程序在出现这个崩溃的屏幕上使用了大约50MB的内存。 - evalsyrelec

0
在我的情况下,在tableView的heightForRowAt方法内部,我正在除以UIApplication.shared.keyWindow!.bounds.width / 2,而keyWindow的强制解包是问题所在。此时它为nil。
使用XCode的Organizer -> Crashes -> Select the crash that you need -> Open in project...进行调试是可行的。它带我到了崩溃的确切代码行并显示了问题。

1
你对组织者的评论帮助我找到了比Crashlitics提供的更多与崩溃相关的信息。它包含了更详细的线程和确切的异常(例如,索引超出范围,意外发现空值等)。谢谢! - undefined

0

我曾经遇到过类似的应用程序问题,但我的问题与设备内存无关,这可能是此错误的原因。 问题在于我使用了ForEach来渲染一些项目,并且我改变了列表大小。


-6

请在appDelegate文件中检查您的后台获取间隔。

例如:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {      

    Fabric.with([Crashlytics.self])

    return true
}

从didFinishMethod中删除application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)这一行,然后再次检查或将其注释掉。


1
我的应用程序中没有setMinimumBackgroundFetchInterval,我不知道这与我的崩溃有什么关系 :) - swalkner
你能展示一下 ViewController.swift 文件第 202 行的错误吗? - pradeepchauhan_pc
在那一行,只是从方法中返回了false...我真的不明白 :( - swalkner
请分享您的代码,这样更容易找到确切的问题。 - pradeepchauhan_pc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接