Firebase crashlytics不会告诉我swift的确切崩溃问题

时间:2019-12-26 15:42:46

标签: ios swift firebase crashlytics

我已经在堆栈上阅读了很多关于此的问题,但是是否有任何解决方案可以解决此问题,以使崩溃报告丢失?

enter image description here

我了解到这些崩溃是由于无原因或未包装的选项或其他原因引起的,但是objc导致的崩溃要好得多:

enter image description here

我的项目基于objetive-c(几年前开始),但是新的主要部分很快就写了。来自objc部分的所有崩溃都已详细说明,而来自swift部分的崩溃则没有详细说明。

所以问题是,我将如何获取可读的崩溃报告,而不是EXC_BREAKPOINT 0x00000001028817ac

1 个答案:

答案 0 :(得分:0)

在这种情况下,我建议在应用程序中添加对用户行为的高级分析,然后尝试与用户重复相同的步骤。这将有助于找到此类崩溃的根源。我可以在您可以在应用程序的屏幕上添加必要功能的基础上共享代码:

return this.task.snapshotChanges().pipe(
  take(1),
  map(doc => {
    console.log('me');
    return doc;
  })
)

并在此处进行填充:

import Foundation
import Crashlytics

class EventLogger {

    /// Log a handled non-fatal exception
    class func logException(_ exception: NSException) {
        print("Catched exception: \(exception.debugDescription)")

        let frames = exception.callStackSymbols.map { symbol in CLSStackFrame(symbol: symbol) }
        Crashlytics.sharedInstance().recordCustomExceptionName(exception.name.rawValue, reason: exception.reason, frameArray: frames)
    }

    private class func log(_ string: String) {
        CLSLogv(string, getVaList([]))
    }

    class func log(screen: String) {
        log("User is located at \(screen) Screen")
    }

    /// Log a status of feature
    class func log(feature: String, status: String) {
        log("Feature \(feature) was \(status)")
    }

    /// Log an event
    class func log(event: String) {
        log("Event: \(event)")
    }
}

崩溃后,您可以看到与此崩溃完全相同的操作日志