我们可以在 iOS 的后台线程上 bootstrap Crashlytics 吗?

Can we bootstrap Crashlytics on a background thread on iOS?

我们正在尝试减少 iOS 应用程序中的冷启动延迟,我们注意到 Crashlytics 可能需要 50 到 150 毫秒(在低端设备上)才能通过其 API 进行设置:

Fabric.with([Crashlytics.self])

这是在应用程序生命周期中尽早运行指示的。

有没有人找到文档或尝试 运行在后台队列中成功地使用这段代码?

这里是来自 Fabric 的迈克。如果您在后台线程上初始化,您 运行 有在应用程序启动时错过崩溃的风险,所以从技术上讲您可以,但需要权衡取舍。一般来说,在我的测试中,我看到 30-60 毫秒的初始化。

如果您实施 CrashlyticsDelegate 协议(特别是 crashlyticsDidDetectReportForLastExecution 回调)并将自己设置为代理,则 Crashlytics 将异步上传崩溃报告,因此您无需将初始化置于后台线程:

Just implementing this delegate method will disable all forms of synchronous report submission. This can impact the reliability of reporting crashes very early in application launch.

https://docs.fabric.io/appledocs/Crashlytics/Protocols/CrashlyticsDelegate.html