如何在启动应用时停止Firebase记录状态更新

时间:2016-05-18 22:25:42

标签: ios iphone firebase

每当我启动FireBase应用程序时,它都会记录各种Firebase功能的状态。现在这就是记录的内容:

Configuring the default app.

<FIRAnalytics/INFO> Firebase Analytics v.3200000 started

<FIRAnalytics/INFO> To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see ...)

<FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist

<FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO

<FIRAnalytics/INFO> Firebase Analytics enabled

我查看了pod并且没有找到任何打印语句,那么我怎样才能阻止这些超时记录我运行应用程序?

10 个答案:

答案 0 :(得分:79)

您可以使用标记-FIRDebugDisabled禁用调试日志记录。

您可以将其添加到scheme

  1. 选择 Scheme 工具栏
  2. 编辑方案
  3. 选择运行
  4. 点击参数并添加-FIRDebugDisabled

答案 1 :(得分:43)

FirebaseConfiguration.shared.setLoggerLevel(.min)之前添加FirebaseApp.configure()以实现最少量的记录。

func setupFirebase() {
  FirebaseConfiguration.shared.setLoggerLevel(.min)
  FirebaseApp.configure()
}

答案 2 :(得分:12)

默认情况下,Firebase会记录信息,错误和警告 因此,您可以根据需要设置记录器级别 如果设置为.Error,则只有在出现错误时才会获得min log。

在FirebaseApp.configure()之前的setLoggerLevel,如下所示

在Swift 2.3和Firebase 4中

 FirebaseConfiguration.sharedInstance().setLoggerLevel(.Error)
 FirebaseApp.configure()

在Swift 3和Firebase 4中

 FirebaseConfiguration.shared.setLoggerLevel(.min)
 FirebaseApp.configure()

答案 3 :(得分:5)

在我的情况下,要从Firebase隐藏额外的控制台日志块,我执行了以下操作:

  1. 导航至产品 - &gt;方案 - &gt;编辑方案。
  2. 在“环境变量”部分的“参数”选项卡下,添加 OS_ACTIVITY_MODE =禁用
  3. enter image description here

    • 万一你需要,只需取消选中该框。
    • 禁用 OS_ACTIVITY_MODE 有时会禁用所有例外的日志

    编辑1 :正如@ jesus-adolfo-rodriguez所说,这与Xcode有关。因此,如果您不想在Xcode控制台上使用OSLog,请在您的方案中将OS_ACTIVITY_MODE环境变量设置为“禁用”。

    编辑2:

    FirebaseConfiguration.shared.setLoggerLevel(FirebaseLoggerLevel.min)
    FirebaseApp.configure()
    

    FIRConfiguration实现中的更多细节here

答案 4 :(得分:4)

默认情况下,Firebase Analytics只会在生产+错误/警告中记录4条INFO行。如果事情正常,那应该是非常少的输出。添加-noFIRAnalyticsDebugEnabled将仅禁用DEBUG级别日志,并始终记录ERROR / WARN。如果您发现任何警告或错误,您可能需要采取措施来解决问题。如果记录警告/错误,某些事情可能无法正常工作。正确设置的应用程序不应记录错误/警告。

使用FIRInstanceID / *标记的消息由Firebase通知记录,并始终记录错误/警告。

答案 5 :(得分:4)

Swift 4 Firebase 4.10

在AppDelegate.swift中设置记录器级别

FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)

以下是完整代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)
    FirebaseApp.configure()
    return true
}

答案 6 :(得分:4)

FIRConfiguration.sharedInstance().setLoggerLevel(.min)
FIRApp.configure()

在Swift 4中

答案 7 :(得分:3)

正如djabi所说,如果这些日志是INFO,WARNING或ERROR,则无法禁用这些日志。

我想补充一下Nitin Gohel的答案,因为我无法评论:标志 FirebaseAppDelegateProxyEnabled 不是用于禁用日志。如果您将其关闭,则会丢失自动广告系列跟踪,您需要添加FIRAnalytics(AppDelegate)中的方法来自行处理网址和用户活动。

答案 8 :(得分:3)

https://firebase.google.com/docs/cloud-messaging/ios/client

添加到Alex的回答

FirebaseAppDelegateProxyEnabled用于调整你的app代理方法

  

FCM API在两个关键领域执行方法调整:将APN令牌映射到FCM注册令牌,并在下游消息回调处理期间捕获分析数据。不喜欢使用调配的开发人员可以通过在应用的Info.plist文件中添加标志 FirebaseAppDelegateProxyEnabled 并将其设置为NO(布尔值)来禁用它。指南的相关区域提供了代码示例,无论是否启用了方法调整。

答案 9 :(得分:1)

我认为这是一个很大而非常重要的混乱。

通过使用-FIRDebugDisabled,它将禁用调试模式,然后您的measurements will be affected during testing and development

当前有no way可以同时启用调试模式和禁用日志。因此FirebaseConfiguration.shared.setLoggerLevel(.min)基本上只能在调试模式下工作。

作为解决方法,您可以使用-noFIRAnalyticsDebugEnabled(仅适用于Xcode console logging),该不会禁用调试模式。