クラッシュログの解析

AppStoreの審査で、アプリがクラッシュして審査できないのでクラッシュログを見て修正してね、と言われリジェクトされた。
審査でクラッシュするのは初めてだったので、その方法を調べてみた。

1. そのまま見てみる

クラッシュログはテキストファイル(拡張子が.txt)だったのでそのまま見てみる。

2.レビューアからの説明を見る

レビューアからのメッセージには、以下のように書いてあったので見てみる。

Next Steps

To address the crash in your app, follow these steps:

1. Fully symbolicate the crash report. See Adding Identifiable Symbol Names to a Crash Report for an explanation of the symbolication process.

Adding Identifiable Symbol Names to a Crash Report

3.dSYMファイルを使う方法

他を調べてみると、dSYMファイルを使って何やらする方法をを見つけた。

iOSエンジニアのつぶやき

no crash report version in 1.crash at ./symbolicatecrash line 1365

4.エラーを調べてみる

エラーメッセージを調べてみると、iOS15以降は解析方法が変わったので、別の方法(CrashSymbolicator.pyを使用する方法)で解析する必要があるとの事だった。

iOS15以降のクラッシュログ解析

5.やってみる

載っている方法に従って実行してみると、無事ipsファイルが出来上がり、それをコンソールで表示するとクラッシュする場所を特定できた。

6.しかし、その後…

その後、2.の文章をもう一度見直してみると「拡張子が.txtだったら.crashに変更する」と重要な事柄として書いてあるのに気づいた。

7.やってみる

拡張子を.crashに変更してXcodeから開いてみると、いつもデバッガーで見るのと同じようにソースコードに表示された。

レビュー時に受け取ったクラッシュログは「拡張子を.chashに変更してXcode開く」が正解!

もし何かの原因でXcodeで見れない場合は、4.の方法でコンソールで表示するのが良いかと思います。