如何在运行时禁用 Crashlytics for iOS?

Posted

技术标签:

【中文标题】如何在运行时禁用 Crashlytics for iOS?【英文标题】:How to disable Crashlytics for iOS during a runtime? 【发布时间】:2016-09-08 11:56:40 【问题描述】:

在this tutorial 之后,我能够将 Crashlytics 集成到 ios 项目中。

但是,当登录的用户来自我们公司时,我想禁用跟踪(通过检查登录用户的电子邮件域)并且只跟踪我们的客户。

应用运行后是否可以根据某些条件禁用 Crashlytics?我在文档中找不到这个选项。

【问题讨论】:

请阅读我的问题。我不想在开发期间禁用它,而是在运行时禁用它。 【参考方案1】:

您不能在运行时禁用它,但是,您可以使用documentation 中描述的技术阻止它发送特定的崩溃报告:

首先,您必须按以下顺序设置Crashlytics 委托:

CrashlyticsKit.delegate = self;
[Fabric with:@[[Crashlytics class]]];

并实现委托方法:

- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report completionHandler:(void (^)(BOOL))completionHandler 
    // You must set email to CrashlyticsKit, during previous app session, like this:
    // [CrashlyticsKit setUserEmail:userEmail];
    BOOL shouldSendCrashReport = [report.userEmail containsString:@"yourCompanyDomain"];
    completionHandler(shouldSendCrashReport);

【讨论】:

在 Swift 中,您可以通过 Crashlytics.sharedInstance().delegate 设置委托。委托应继承自 NSObject

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

在 iOS 运行时禁用 crashlytics/Fabric

如何在开发过程中禁用 Crashlytics for iOS?

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

在运行时禁用/启用 Firebase Crashlytics

如何完全禁用 FirebaseAnalytics 或 Crashlytics [重复]

如何在 Flutter 中启用/禁用 Firebase Crashlytics