はじめに
FirebaseのコンソールでFirebase Crashlyticsを有効にすると、アプリをビルドして意図的にクラッシュさせるよう求められます。ただ、なぜかクラッシュさせてもコンソール上にクラッシュ情報が表示されず、一向にFirebase Crashlyticsが有効にならない状態に陥りました。結論はケアレスミスなのですが笑、一応忘れないように記事に残します。
環境
・macOS Catalina 10.15.7
・Xcode 12.2
・Swift 5.3.1
・CocoaPods 1.10.0
・Firebase/Crashlytics 7.3.0
前提
Get started with Firebase Crashlyticsに沿ってCrashlyticsを初期化し、Test your Crashlytics implementation | Firebaseに沿ってアプリを意図的にクラッシュさせたはずなのに、コンソールが以下のような状態のまま変わらず、クラッシュ情報が一向に反映されない。
原因
主にシミュレータの接続を解除せずにクラッシュさせていたため・・・。
対処法
Test your Crashlytics implementation | Firebaseに記載の以下2点の内容を漏れずに対応すればよい。
"2.Xcode で [stop Stop running the scheme or action] をクリックして、アプリの初期インスタンスを閉じます。この初期インスタンスには、Crashlytics の動作を妨げるデバッガが含まれています。"
"5.もう一度アプリを開くと、Crashlytics API によってクラッシュが報告されます。5 分以内に Firebase コンソールにクラッシュが表示されるはずです。"
クラッシュ情報を送信する具体的な手順
1.ビルド完了後、Xcode デバッガとシミュレータの接続を解除
2.マルチタスク画面でビルドしたアプリを上にスワイプして終了する
3.ビルドしたアプリを再度開く
4.Test your Crashlytics implementation | Firebaseで作成したボタンを選択して、意図的にクラッシュさせる
5.再度アプリを開くとクラッシュ情報が送信され、コンソールに反映される
おわりに
過去に設定したことがあるので、「はいはいこうやってクラッシュさせればいいんでしょ・・・。」と大雑把にドキュメント見たのが失敗のもとでした。。今回のケースはもはや「普通にドキュメント見てないですよね!?」と言われても仕方ないレベルのケアレスミスですが・・・笑
ドキュメントをちゃんと読んでいないで躓くパターンは、第三者が対処法に関する記事を書くことも少ないので、この記事が誰かの役に立つことを願っています・・・笑