【问题标题】:Is it possible to use Crashlytics with an extension?是否可以将 Crashlytics 与扩展一起使用?
【发布时间】:2021-10-21 16:49:56
【问题描述】:

有一些关于此的现有问题和信息(例如How to use Crashlytics with iOS / OS X today view extensions?),但它们非常古老,使用不再存在的 API,具有相互矛盾的信息,而且通常是一团糟。

我的问题很简单 - 是否可以在扩展程序中运行 Crashlytics?特别是通知服务扩展?

如果有人有任何最新的分步说明,我将不胜感激。我已经尝试了一些实验,但没有任何效果。但实际上我什至看不到它实际上是如何工作的——因为应用程序中的崩溃会在应用程序下次运行时上传到仪表板。但是,如果将 Crashlytics 添加到扩展程序中,应用程序如何知道在扩展程序中发生了崩溃?如果应用程序和扩展程序正在使用共享组,则可以通过组中的文件在扩展程序和应用程序之间共享 crashlytics 信息,但是在有关 crashlyics/extensions 的答案/参考资料中都没有提到过这个方面。

【问题讨论】:

  • 大部分情况下是的,但取决于扩展名。 Crashlytics Watch Extensions 包含在快速入门repo 中,因此这表明它是可能的:

标签: ios crashlytics


【解决方案1】:

我已经成功地完成了扩展,但它很棘手(我不知道它是否被官方支持)。没错,主应用程序不知道扩展程序何时崩溃,因此您需要确保在进程启动时从扩展程序启动 Crashlytics。对于 NSE,我在 didReceive(:) 函数中启动它,因为这是该过程的起点。

每个扩展程序都有自己独立的Google-Info.plist 文件,因此它与主应用程序分开报告。

【讨论】:

  • 所以它只有在下一次扩展程序在崩溃后运行时才能够上传崩溃信息。它如何有足够的时间进行 http 连接并上传数据?如果有很多崩溃信息要上传,而且连接速度很慢,并且扩展程序只能运行很短的时间怎么办?
  • Crashlytics 完全控制它,所以我不知道其中的细节。至少在我的情况下,无论如何都会在 NSE 中发出 HTTP 请求以解决所有通知细节,所以如果 Crashlytics 发出请求,那应该不是问题。如果要发送大量崩溃,我假设他们有某种批处理/缓冲系统,但据我所知,这不是 Crashlytics 宣传的东西。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2018-03-14
  • 2021-09-15
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多