【问题标题】:How to disable Crashlytics iOS library using a flag?如何使用标志禁用 Crashlytics iOS 库?
【发布时间】:2015-03-08 20:09:19
【问题描述】:

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

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

【问题讨论】:

    标签: ios objective-c xcode crashlytics


    【解决方案1】:

    您是要阻止 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 - 预处理”,为您想要的任何上下文添加您自己的预处理器宏”部分,并更改“预处理器宏”下的条目。您可以根据需要为任何项目配置添加它们。

    【讨论】:

    • 感谢您的回复。我使用了与您在这里展示的相同的东西,但前几天我问问题时没有工作。然后再次尝试第二天它开始工作:)(我猜是一些缓存内存或其他东西)感谢您确认这是解决方案。
    【解决方案2】:

    Swift 语言也支持conditional compilation:

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

    FABRIC 定义为Build Settings -&gt; Swift Compiler - Custom Flags -&gt; Other Swift Flags 中的Swift 编译器标志:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 2017-11-14
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      相关资源
      最近更新 更多