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
ポッドに目を通しましたが、印刷ステートメントが見つからなかったので、アプリを実行して時間外にログに記録されないようにするにはどうすればよいでしょうか?
フラグ-FIRDebugDisabled
を使用して、デバッグロギングを無効にできます。
それを scheme に追加できます:
-FIRDebugDisabled
を追加しますロギングの最小量を達成するには、FirebaseConfiguration.shared.setLoggerLevel(.min)
の前にFirebaseApp.configure()
を追加します。
func setupFirebase() {
FirebaseConfiguration.shared.setLoggerLevel(.min)
FirebaseApp.configure()
}
デフォルトでは、Firebaseは情報、エラー、警告を記録します。
したがって、必要なロガーレベルを設定できます。
。Errorを設定すると、エラーが発生した場合にのみ最小ログを取得します。
以下に示すように、FirebaseApp.configure()の前のsetLoggerLevel
Swift 2.3およびFirebase 4
FirebaseConfiguration.sharedInstance().setLoggerLevel(.Error)
FirebaseApp.configure()
Swift 3およびFirebase 4
FirebaseConfiguration.shared.setLoggerLevel(.min)
FirebaseApp.configure()
私の場合、Firebaseからコンソールログの余分な部分を隠すために、次のことを行いました。
Edit 1:@ jesus-adolfo-rodriguezが言ったように、これはXcodeに関連しています。そのため、XcodeコンソールでOSLogが必要ない場合は、スキームでOS_ACTIVITY_MODE環境変数を「無効」に設定します。
編集2:
FirebaseConfiguration.shared.setLoggerLevel(FirebaseLoggerLevel.min)
FirebaseApp.configure()
FIRConfiguration実装の詳細 here
デフォルトでは、Firebase Analyticsは本番環境で4行のINFO行とエラー/警告のみを記録します。物事が正しく機能している場合、出力はほとんどありません。 -noFIRAnalyticsDebugEnabledを追加すると、DEBUGレベルのログのみが無効になり、ERROR/WARNは常にログに記録されます。警告またはエラーが表示された場合、おそらく原因を解決するために何かをする必要があります。警告/エラーがログに記録された場合、いくつかのことが正しく機能しない可能性があります。正しくセットアップされたアプリは、エラー/警告を記録するべきではありません。
FIRInstanceID/*でタグ付けされたメッセージはFirebase Notificationによって記録され、エラー/警告は常に記録されます。
FIRConfiguration.sharedInstance().setLoggerLevel(.min)
FIRApp.configure()
Swift 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
}
Djabiが言ったように、それらがINFO、WARNINGまたはERRORである場合、それらのログを無効にすることはできません。
コメントできないので、Nitin Gohelの答えに追加したいと思います。フラグFirebaseAppDelegateProxyEnabledは、ログを無効にするためのものではありません。これをオフにすると、自動キャンペーントラッキングが失われ、URLとユーザーアクティビティを自分で処理するためにFIRAnalytics(AppDelegate)からメソッドを追加する必要があります。
アレックスの答えに追加するには、 https://firebase.google.com/docs/cloud-messaging/ios/client から
FirebaseAppDelegateProxyEnabled
は、アプリのデリゲートのメソッドをスウィズルするためのものです
FCM APIは、APNsトークンをFCM登録トークンにマッピングすることと、ダウンストリームメッセージコールバック処理中に分析データをキャプチャすることの2つの主要な領域でメソッドスウィズルを実行します。開発者は、アプリのInfo.plistファイルにフラグFirebaseAppDelegateProxyEnabledを追加し、NO(ブール値)に設定することで、スウィズリングを使用しないことを無効にできます。ガイドの関連領域では、メソッドスウィズルを有効または無効にしたコード例を示します。