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

12

有没有办法禁用Ad-Hoc版本的崩溃报告?我只想在发布版本中使用崩溃报告。

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

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

我正在使用Fabric 1.1.3

编辑:我不想完全禁用Fabric,我只需要自动配置Ad-Hoc和Release构建。


可能是重复的问题:如何使用标志禁用Crashlytics iOS库? - mixel
不,我需要自动配置Ad-Hoc和Release构建,并且@rckoenes的解决方案在这种情况下有效。 - Zee
https://stackoverflow.com/a/66972059/2692839 - Umair Ali
5个回答

8

在 Swift 中禁用 Firebase Crashlytics 的调试模式:

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

阅读此方法的文档,以防万一,您可能想使用info plist代替。 - undefined

5
我认为你可以尝试这个:

我认为你可以尝试这个:

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

这不是我需要的,请仔细阅读答案,你的解决方案已经包含在问题中了。 - Zee
3
在预处理语法中,“ifndef DEBUG”和“if DEBUG == 0”并不相同,因为后者意味着DEBUG已定义为0,并且通常在发布版本中,DEBUG标志根本不存在。 - Marc-Alexandre Bérubé

5
如果您使用Swift,这将起作用:
#if !DEBUG
    Fabric.with([Crashlytics.self])
#endif

4

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

您最好的选择是为AppStore创建一个新配置。对于此配置添加一个Preprocessor Macro,例如FABRIC=1

然后在您的构建代码中:

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

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

在此之后,您可以根据“构建设置”中用户定义的变量进行配置。
#if Development
print("Debug 1")
Fabric.sharedSDK().debug = true
#else
print("Debug 0")
Fabric.with([Crashlytics.self])
#endif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接