2017-10-18 44 views
1

我们正在努力减少我们的iOS应用程序的冷启动响应时间,我们注意到,Crashlytics可在50和150毫秒之间采取(对低端设备),这样做是通过他们的API设置:我们可以在iOS上的后台线程上引导Crashlytics吗?

Fabric.with([Crashlytics.self]) 

这是指示在应用生命周期中尽可能早地运行。

有没有人发现文档或尝试在成功的背景队列中运行这段代码?

回答

1

迈克从面料这里。如果你在后台线程上初始化,你可能会遇到在启动应用程序时丢失崩溃的风险,所以在技术上你可以,但是存在权衡。一般来说,在我的测试中,我看到30-60ms的初始值。

+0

如果你走这条路线,你可能要dispatch_wait为它在应用程序的最终完成:didFinishLaunching:只是让你不会错过在app之后执行的代码中的任意位崩溃初始化也是如此。但是,如果你这样做的话,可能也不会赢。 –

+0

这不是一个坏主意 - 我想我们可能会尝试使用我们自己的基本崩溃记者在短暂的时间Crashlytics不是自举的。 –

+1

作为一个头脑,这将是有风险的,以及iOS只支持一个正在运行的未捕获异常处理程序。 –

0

如果要实现CrashlyticsDelegate协议(特别是crashlyticsDidDetectReportForLastExecution回调),并设置自己作为代表,那么Crashlytics将上传崩溃报告异步,所以你不会需要把初始化后台线程:

只是实施这种委托方法将禁用所有形式的同步报告提交。这可能会在应用程序启动的早期影响报告崩溃的可靠性。

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

+0

感谢您的建议 - 但我的延迟来自引导Crashlytics--而不是发送崩溃报告。在crashlytics初始化过程中不会调用此方法,除非之前发生崩溃。 –

相关问题