如何使用标志禁用 Crashlytics iOS 库?

How to disable Crashlytics iOS library using a flag?

我正在为 iOS 使用最新的 Crashlytics 库。我希望使用单个标志禁用 crashlytics。我该怎么做?

PS:我没有按照新的 SDK 集成指南使用设置 API 键方法。 (使用 MAC 应用程序集成)

您是想阻止 Crashlytics 运行,还是根本阻止 SDK 被编译?

为防止它 运行,您不能调用 Crashlyitcs 来启动它,通常在您的应用委托中完成。

例如,如果您在 Fabric 之前使用 Crashlytics,只需注释掉以下行:

[Crashlytics startWithAPIKey:<your key>];

如果您使用的是 Fabric,则需要注释掉以下行:

[Fabric with:@[CrashlyticsKit]];

如果您使用的是其他 Fabric 服务,请从服务中删除 'CrashlyticsKit' 以便 Fabric 启动。例如,您想要更改:

[Fabric with:@[TwitterKit, CrashlyticsKit]];

至:

[Fabric with:@[TwitterKit]];

既然你想用一个标志来完成这个,有很多方法可以做到这一点,一种方法是使用处理器宏。例如,如果您只是想在 XCode 中 运行 时禁用 Crashlytics,则可以使用 DEBUG,这是一个在 XCode 项目中默认设置为 1 的预处理器宏,如下所示方式:

#if DEBUG == 0 [Crashlytics startWithAPIKey:<your key>]; #endif

您可以通过在 XCode、select 您的目标、select "Build Settings" 选项卡,滚动到 "Apple LLVM 6.0 - Preprocessing" 部分,然后更改 "Preprocessor Macros" 下的条目。您可以根据需要为任何项目配置添加它们。

Swift语言也支持conditional compilation:

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

Build Settings -> Swift Compiler - Custom Flags -> Other Swift Flags中将FABRIC定义为Swift编译器标志: