应用程序早期生命周期中的重复崩溃未在iOS上报告

时间:2018-02-09 15:55:11

标签: crashlytics google-fabric

我们最近在我们的生产iOS应用程序中遇到了Core Data堆栈的问题,而Fabric Crashlytics帮助我们解决了大部分问题。但是,我们怀疑即使在用户重新启动应用程序发送崩溃报告后,也不会报告所有崩溃。

如果应用在应用启动时遇到重复出现的崩溃循环,Crashlytics可能无法报告发生的任何崩溃。来自Fabric的文档:

  

如果您的应用在发布时崩溃,那么在随后的发布中我们会尝试   发送崩溃报告同步阻止主线程的a   时间很短。

以上主要线程阻止永远不会发生,因为该应用程序在Crashlytics有机会发送报告之前再次崩溃;从未报告原始崩溃。

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        Fabric.with([Crashlytics.self])

        Crashlytics.sharedInstance().crash() // Mimics our CoreData stack crash.

        return true
    }
}

我们做错了吗?有没有办法配置Crashlytics来启用此功能?

请注意,我们尝试使用其他方法来崩溃应用程序(例如强制解包),测试时未连接调试器,Fabric& Crashlytics pod正确设置,报告适用于不再发生的崩溃。

1 个答案:

答案 0 :(得分:0)

Mike来自Fabric。鉴于崩溃发生时,init之后的行,几乎可以肯定我们的SDK没有足够的时间来完成初始化。发布时大多数应用程序崩溃发生在启动序列的后期,使我们的SDK有足够的时间进行初始化。

在应用程序在Fabric中处于活动状态之前,不要故意导致崩溃,否则可能会阻止应用程序在Fabric中激活。