每当我启动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并且没有找到任何打印语句,那么我怎样才能阻止这些超时记录我运行应用程序?
答案 0 :(得分:79)
您可以使用标记-FIRDebugDisabled
禁用调试日志记录。
您可以将其添加到scheme:
-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 :正如@ 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),该不会禁用调试模式。