在 iOS 应用程序运行时启用/禁用 Crashlytics

Posted

技术标签:

【中文标题】在 iOS 应用程序运行时启用/禁用 Crashlytics【英文标题】:enabling/disabling Crashlytics at runtime in iOS app 【发布时间】:2019-06-03 05:20:46 【问题描述】:

似乎无法通过 swift 中的方法调用在运行时启用/禁用 Crashlytics - 我的应用设置了 firebase 分析和 Crashlytics for firebase - 以下调用(根据 Google dev website)给了我“使用未解析的标识符“崩溃””,即使在导入 crashlytics 和 firebase 时也是如此

Crash.sharedInstance().crashCollectionEnabled = false

【问题讨论】:

您使用的是 Fabric 还是 Crashlytics?吊舱/二进制?最新版本? 看起来好像您的 Crashlytics 未导入。这也可能是动态框架使用的问题,因为这些直到使用才加载。在这种情况下使用静态库 cab 会更好 我在项目中添加了 Firebase 分析,然后按照谷歌网站上的 firebase 说明添加了 crashlytics。这是最新版本的 Firebase 和 Crashlytics。我错过了什么导入? 【参考方案1】:

在新的 SDK 中,您可以按照 documentation 进行操作:

默认情况下,Crashlytics 会自动为所有用户收集崩溃报告 您应用的用户。为了让用户更好地控制他们发送的数据, 您可以通过禁用自动为您的用户启用选择加入报告 仅为选定用户收集和初始化 Crashlytics:

通过向 Info.plist 添加新键来关闭自动收集 文件:

Key: FirebaseCrashlyticsCollectionEnabled 
Value: false 

通过调用 Crashlytics 数据收集为选定用户启用收集 在运行时覆盖。覆盖值在启动时持续存在 您的应用程序,以便 Crashlytics 可以自动收集报告以备将来使用 该应用程序实例的启动。选择退出自动崩溃 报告,传递 false 作为覆盖值。

 Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)

【讨论】:

【参考方案2】:

似乎提供该方法的 Firebase 框架已被弃用。

您现在应该使用 Crashlytics 方式:https://firebase.google.com/docs/crashlytics/customize-crash-reports#enable_opt-in_reporting

【讨论】:

以上是关于在 iOS 应用程序运行时启用/禁用 Crashlytics的主要内容,如果未能解决你的问题,请参考以下文章

在应用程序运行时启用/禁用 Core Data 的 iCloud 同步

应用程序关闭时的 iOS 定位服务启用/禁用事件

在 iOS 设置中更改通知时,Amazon SNS 如何禁用/重新启用设备?

在运行时启用/禁用 SwaggerUI

在运行时启用和禁用 gprof?

从设置应用程序 ios 获取推送通知启用/禁用事件?