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

Posted

技术标签:

【中文标题】如何在开发过程中禁用 Crashlytics for iOS?【英文标题】:How to disable Crashlytics for iOS during development? 【发布时间】:2015-04-17 07:37:57 【问题描述】:

有什么方法可以禁用 Ad-Hoc 构建的崩溃报告?我只想要发布版本的崩溃报告。

我知道我可以使用以下代码,但它仅适用于调试版本。

#if DEBUG == 0
    [Fabric with:@[CrashlyticsKit]];
#endif

我使用的是 Fabric 1.1.3

编辑:我根本不想禁用 Fabric,我只需要对 Ad-Hoc 和 Release 构建进行自动配置。

【问题讨论】:

How to disable Crashlytics ios library using a flag?的可能重复 不,我需要对 Ad-Hoc 和 Release 构建进行自动配置,而 @rckoenes 解决方案适用于这种情况。 ***.com/a/66972059/2692839 【参考方案1】:

我想你可以试试这个:

#ifndef DEBUG
 [Fabric with:@[CrashlyticsKit]];
#endif

【讨论】:

这不是我需要的,请仔细阅读答案,您的解决方案已经包含在问题中。 在预处理语法中,ifndef DEBUGif DEBUG == 0 根本不一样,因为第二个暗示 DEBUG 是用 0 值定义的,并且通常在发布版本中,DEBUG 标志只是不存在【参考方案2】:

如果您使用 Swift,这将起作用:

#if !DEBUG
    Fabric.with([Crashlytics.self])
#endif

【讨论】:

【参考方案3】:

开发版本也是DEBUG 版本,您可能指的是 Ad-Hoc 版本。 由于发行版和 Ad-Hoc 构建使用相同的配置,因此您将无法区分它们。

您的选择是为 AppStore 创建新配置。为此配置添加Preprocessor Macro,如FABRIC=1

然后在你构建代码:

#ifdef FABRIC
    [Fabric with:@[CrashlyticsKit]];
#endif

【讨论】:

【参考方案4】:

在 swift 中为调试模式禁用 firebase crashlytics:

    #if DEBUG
        Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(false)
    #endif

【讨论】:

【参考方案5】:

对于 Swift,将此键添加到 plist 并将其设置为“否”。

firebase_crashlytics_collection_enabled

之后,根据 Build Settings 中的用户自定义变量,您可以进行配置。

#if Development
print("Debug 1")
Fabric.sharedSDK().debug = true
#else
print("Debug 0")
Fabric.with([Crashlytics.self])
#endif

【讨论】:

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

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

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

当用户更改首选项时如何在运行时禁用 Crashlytics/Fabric

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

如何禁用 Crashlytics Answers?

在 iOS 运行时禁用 crashlytics/Fabric