【问题标题】:non-fatal error functionality of CrashlyticsCrashlytics 的非致命错误功能
【发布时间】:2017-11-07 19:02:10
【问题描述】:

我正在测试 Crashlytics 的非致命错误功能,当我在 AppDelegate 中调用以下行并在我的一个 ViewController 中添加日志时,似乎无法让日志和密钥出现在 Crashlytics 仪表板中。

let error = NSError(domain:"XYZ", code: Int(1.0), userInfo: nil) Crashlytics.sharedInstance().recordError(error)

但是如果我在我的 ViewController 按钮中添加以上两行,它就可以工作 点击并在其中添加日志。它会为我提供我在应用程序中添加的每个日志。

但是添加按钮点击似乎很奇怪,在 AppDelegate 或任何公共区域有什么办法吗?

【问题讨论】:

    标签: ios swift crashlytics


    【解决方案1】:

    来自 Fabric 的 Mike。这是我们处理信息的顺序 - 崩溃、非致命异常或错误,然后在同一级别 - 自定义键、日志和用户标识符。如果您在错误之前捕获自定义密钥或日志,那么在我们捕获错误之前可能没有足够的时间将其写入磁盘。另外,需要注意的一点是,只有在发生崩溃或非致命异常时才会发送日志和密钥。

    【讨论】:

    • 嗯,我明白这一点.. 但是如何在按钮单击中获得足够的时间,而在 ViewDidLoad 或 AppDelegate 方法中却没有足够的时间..?问题是,如果我不点击该按钮,仪表板中不会显示日志,这不是问题吗?
    • 如果您在应用程序委托中完全初始化 Fabric 之后添加密钥或日志,则将记录数据。但是,它仍然只有在同一会话中发生崩溃或非致命异常时才会显示。
    • 我在 Fabric.with([Crashlytics.self]) 之后添加了 didFinishLaunchingWithOptions 函数 .. 像这样
    • 我在 Fabric.with([Crashlytics.self]) 之后添加了 didFinishLaunchingWithOptions 函数 .. 像这样 CLSLogv("AppDelegate %@", getVaList(["some text"])) let error = NSError (domain:"appname", code: 18, userInfo: nil) Crashlytics.sharedInstance().recordError(error) ...但这只会给我上面的日志,而不是我的应用程序中的全部..
    • 如果之后添加并且值不为空,那么它们应该显示出来。如果您有指向 Fabric 中某个问题的特定链接,我可以深入挖掘。
    猜你喜欢
    • 2018-01-15
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多