📄 クラッシュレポートとは?
クラッシュレポートは、スレッド情報やスタックトレース、クラッシュ時の関数名などが記録されたログです。アプリが異常終了した原因を追跡できます。
🔍 クラッシュレポートの確認方法
- App Store Connect: 「Crashes」から自動収集されたレポートを確認可能 - App Store Connect
- Xcode Organizer: 自分のデバイスで発生したクラッシュを確認可能
- Firebase Crashlytics: クラッシュ情報をリアルタイムでダッシュボード表示
🧠 Symbolication(記号化)とは?
クラッシュレポートは、記号化(Symbolication)されていないと、0x00000001006b7000のような「アドレス値」しか表示されません。
dSYMファイルを使って記号化することで、関数名や行番号が復元されます。
Thread 0 Crashed:
0 MyApp 0x0000000100b7602c mainViewController.viewDidLoad + 34
1 UIKitCore 0x00000001b3120000 UIApplicationMain + 220
このように MyApp 内の viewDidLoad 関数が原因と判明します。
🧩 よくあるクラッシュ原因
- 配列の範囲外アクセス:
index out of range - オプショナルの強制アンラップ:
unexpectedly found nil - UIスレッド外でのUI更新
- メモリ不足(EXC_BAD_ACCESS)
- APIレスポンスの不整合
🚑 Firebase Crashlyticsとの比較
App Store ConnectはApple公式ですが、リアルタイム性が低いです。
Firebase Crashlyticsを使えば、ユーザーごとのクラッシュ状況や再現手順、ログメッセージを即座に追跡できます。 - Firebase Crashlytics
📌 まとめ
- クラッシュレポートはアプリ品質向上のカギ
- dSYMを使ってSymbolicationする
- Firebaseとの併用でリアルタイム解析が可能
- クラッシュ原因ごとの傾向を把握して設計改善へ