OSアプリでCrashlyticsをカスタマイズしてログを保存する
最初に
Firebaseにはアプリのクラッシュを監視するCrashlyticsという機能があります。ただ標準クラッシュ以外も監視したいとなると自分でいろいろ実装する必要が出てきます。ということでいろいろ調べてみました。
Crashlyticsの基本的な導入部分は公式ドキュメントを見て実装してください。
Crashlytics公式ドキュメント https://firebase.google.com/docs/crashlytics?hl=ja
クラッシュに情報を追加する
以下のような実装をするとクラッシュした際に情報を追加することができます。
[swiftのソース] func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() // key value形式での情報 Crashlytics.crashlytics().setCustomValue("str_value", forKey: "str_key") // dictionary形式での情報 let keysAndValues = [ "str_key1" : "str_value1", "str_key2" : "str_value2"] Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues) // 単純なテキスト(ログ) Crashlytics.crashlytics().log("log text") // ユーザーID Crashlytics.crashlytics().setUserID("nao123456") return true }
こんな感じで追加した情報が出てきます
クラッシュ以外のタイミングで情報を送信する
クラッシュ以外のタイミングでも送信することができます
let error = NSError(domain: NSCocoaErrorDomain, code: -123, userInfo: nil) Crashlytics.crashlytics().record(error: error)
非致命的なイベントとしてこんな感じで出てきます
まとめ
普段Crashlyticsを使っていれば簡単に実装できます。 クラッシュを監視したりもできるので今後は積極的に使っていきたいと思います。
より詳しいことを知りたい方は公式ドキュメントをご覧ください
Firebase Crashlytics のクラッシュ レポートのカスタマイズ(公式ドキュメント) https://firebase.google.com/docs/crashlytics/customize-crash-reports?authuser=0&platform=ios