【发布时间】:2015-03-08 20:09:19
【问题描述】:
我正在使用适用于 iOS 的最新 Crashlytics 库。我希望使用单个标志禁用 crashlytics。我该怎么做?
PS:我没有按照新的 SDK 集成指南使用设置 API 密钥方法。 (使用 MAC 应用程序集成)
【问题讨论】:
标签: ios objective-c xcode crashlytics
我正在使用适用于 iOS 的最新 Crashlytics 库。我希望使用单个标志禁用 crashlytics。我该怎么做?
PS:我没有按照新的 SDK 集成指南使用设置 API 密钥方法。 (使用 MAC 应用程序集成)
【问题讨论】:
标签: ios objective-c xcode crashlytics
您是要阻止 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 中打开您的项目文件 (.xcodeproj),选择您的目标,选择“构建设置”选项卡,滚动到“Apple LLVM 6.0 - 预处理”,为您想要的任何上下文添加您自己的预处理器宏”部分,并更改“预处理器宏”下的条目。您可以根据需要为任何项目配置添加它们。
【讨论】:
Swift 语言也支持conditional compilation:
#if FABRIC
Fabric.with([Crashlytics.self])
#endif
将FABRIC 定义为Build Settings -> Swift Compiler - Custom Flags -> Other Swift Flags 中的Swift 编译器标志:
【讨论】: