如何强制 Crashlytics 上传报告并等待

Posted

技术标签:

【中文标题】如何强制 Crashlytics 上传报告并等待【英文标题】:How to force Crashlytics to upload reports & wait 【发布时间】:2020-07-08 05:39:29 【问题描述】:

在某些用户设备上,我的 ios 应用在启动时反复崩溃。这使得 crashlytics 无法在每次启动时上传报告。有没有办法获取 Crashlytics 已完成上传报告的回调,然后继续执行视图控制器初始化任务?有没有办法知道应用程序何时启动:

Crashlytics 在启动时有待上传的崩溃报告

如果是,请等待上传完成,然后再继续查看控制器设置

【问题讨论】:

【参考方案1】:

我建议查看此文档:https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=ios#the_crashlyticsdelegate_is_replaced_by_separate_methods_for_handling_crash_reports

特别是本节:

“默认情况下,Crashlytics 会在启动时自动上传崩溃报告,您之前可以调用 didFinishLaunchingWithOptions 让您的用户选择加入崩溃报告。现在,当您调用 setCrashlyticsCollectionEnabled=false 来关闭自动崩溃报告时,Crashlytics 会调用 checkForUnsentReportsWithCompletion ,这让您的用户可以选择在您的应用崩溃时是否发送崩溃报告。如果用户选择加入,您可以调用 sendUnsentReports,如果用户选择退出,则可以调用 deleteUnsentReports。

请注意,您还可以在 checkForUnsentReportsWithCompletion 之外调用 sendUnsentReports 和 deleteUnsentReports。例如,如果您的用户已全面批准或不批准您发送崩溃报告,您可能希望永久设置或禁用崩溃报告。请记住,如果您的应用在其生命周期的早期崩溃,您可能永远不会收到崩溃报告。”

【讨论】:

但是我需要等待它完全上传后再继续,比如初始化视图控制器等。我该怎么做?根本问题是应用程序在启动时不断崩溃。所以不会上传崩溃报告。 您能否尝试在 AppDelegate 中初始化 Firebase 后立即调用 sendUnsentReports,然后在此之后添加延迟以确保发送报告?

以上是关于如何强制 Crashlytics 上传报告并等待的主要内容,如果未能解决你的问题,请参考以下文章

如何将映射文件上传到 Firebase Crashlytics?

Crashlytics 未提供适当的崩溃报告

崩溃报告没有进入Crashlytics / fabric。显示警告:“看起来我们缺少dSYM来处理以下版本的崩溃。”

Android NoHttpResponseException:Crashlytics 在上传 deobs 文件时出现问题

如何在 BigQuery 中手动强制报告运行?

Crashlytics 不报告崩溃