iosアプリのクラッシュログを解析する
App storeに申請後、クラッシュを理由にリジェクトされたのでその際のログ解析方法のメモ。
必要なファイル
.dSYMファイル
.crashファイル
の2つ
- .dSYMファイル
/Users/[ユーザ名]/Library/Developer/Xcode/Archives/[yyyy-mm-dd]/[アプリ名].xcarchive
にアーカイブ・ファイルがある。このファイルを「パッケージの内容を表示」で開くとdSYMフォルダがあり、その中に.dSYMファイルがある。
- .crashファイル
解析方法
symbolicatecrashを使用してクラッシュログをシンボル付きのログに変換する。
symbolicatecrashコマンドは結構深いところにあるのでシンボリックリンクを作っておくと良い。
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
そして実行
symbolicatecrash .crashファイル .dSYMファイル
これで
変換前
0 Zn1clipboard 0x0000000100059240 0x100044000 + 86592
返還後
0 Zn1clipboard 0x0000000100059240 Zn1clipboard.Groups.load (Zn1clipboard.Groups)() -> () (Groups.swift:0)
のようにアドレスからシンボルが付与されてソースコードのどの部分でクラッシュしたかが分かるようになる。