【Xcode9】iTunesConnectでリジェクトされた時のクラッシュレポート解析方法メモ。【symbolicate】

作成日
更新日

アプリリジェクトされた!!!!!!!

ということで今までやってこなかったクラッシュレポートの解析をしてみたのでメモしていきます。

 

クラッシュレポートをダウンロード

今回リジェクト時にResolution Centerに届いたメッセージ。

Your app crashed on iPad or iPhone running iOS 11.2.5 connected to an IPv6 network during our review.

We have attached detailed crash logs to help troubleshoot this issue.

まずは、こちらに添付されていたXXXX.crashというファイルをダウンロードします。

適当にデスクトップにcrashというフォルダを作ってその中に入れました。

 

dSYMをクラッシュレポートと同じ場所に配置

XcodeのメニューバーよりWindow > Organizerを開く。

2018-03-【Xcode9】iTunesConnectでリジェクトされた時のクラッシュレポート解析方法メモ。【symbolicate】-794fb09e2d554f0399660b5c9680affd

実際に審査に出したバージョンと同じバージョンを右クリックし、Show in Finderを開く。

2018-03-【Xcode9】iTunesConnectでリジェクトされた時のクラッシュレポート解析方法メモ。【symbolicate】-f8201ca48c8a42449617e7face233268

 

出てきたXXX.xcarchiveファイルを右クリックし、パッケージの内容を表示を選択。

2018-03-【Xcode9】iTunesConnectでリジェクトされた時のクラッシュレポート解析方法メモ。【symbolicate】-fabdf7e7dfc94ad5bfb7edf9cdbffb7d

 

dSYMs > App名.app.dSYMをコピーしてクラッシュレポートのあるディレクトリに配置。

2018-03-【Xcode9】iTunesConnectでリジェクトされた時のクラッシュレポート解析方法メモ。【symbolicate】-76f3b46c4ec94bf9ae04562b2d421ff0

 

~/Desktop/crashフォルダの中にApp名.app.dSYMとXXXX.crashの2つがあればおkです。

クラッシュレポートの名前は長かったら短くしておくと良いと思います。

 

クラッシュレポートを読めるようにする!

添付されているクラッシュレポートをそのまま読もうとしてもこんな感じで何が書いてあるのかさっぱりわからんです。

2018-03-【Xcode9】iTunesConnectでリジェクトされた時のクラッシュレポート解析方法メモ。【symbolicate】-d43bf13749814572997f972258e34d52

なのでこれを読めるようにしていきます。

 

ターミナルを開き、先ほど配置したcrashフォルダまで移動

cd ~/Desktop/crash

そいでここで、

(symbolicatecrashのpath) -v (クラッシュレポートのpath) (dSYMのpath) > crash.txt

というコマンドを打ちます。書き出しが必要なければcrash.txtはいらないです。(ターミナル上で書き出されたのを読むことになります!)

symbolicatecrashまでのpathはXcodeのバージョンによって違うらしいです。(iOSのクラッシュログをSymbolicate(復元)して解析する参照)

自分の環境では(Xcode9)

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

でした。

App名:hoge クラッシュレポート名:hoge.crash とした場合は

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v ~/Desktop/crash/hoge.crash ~/Desktop/crash/hoge.app.dSYM > crash.txt

を実行すればcrash.txtに書き出されます。

 

書き出したテキストファイルを見てみると、クラッシュした場所がわかるようになっています。

2018-03-【Xcode9】iTunesConnectでリジェクトされた時のクラッシュレポート解析方法メモ。【symbolicate】-417c0f8d2dc74c3a9616cb6ad63d395e

CameraViewController.swift内の139行目で落ちてるよ!!!ってことまでわかります。

 

もっと難しいイメージだったんですが、意外と簡単でした!!!良かった!!

 

うまくいかなかった方法。。。。

最初は「iTunes Connectクラッシュレポートを分析する方法」を参考にさせていただき、上記と同様にXXX.crashとアプリ名.app.dSYMファイルを同じフォルダに入れ、

atos -o アプリ名.app.dSYM/Contents/Resources/DWARF/アプリ名 -arch arm64 -l 0x0000000100a67624 0x1009f4000

と言ったやり方をやってみました。(0x000~以降はクラッシュした箇所)

んで本当は指定したアドレスが指す箇所がsymbolicateされて読めるようになるはずなんですが何故かsymbolicateされなくて

0xfff8c9dc (in アプリ名)

ってアドレスがそのまま返ってきちゃうんですよね。

なんか手順を間違っているのかわからんのですが、上手くいきませんでした。

 

とりあえず上記の方で上手く言ったので良しとしました。

無事クラッシュの再現ができ、再審査に提出!!!!

クラッシュレポート見るまではIPv6環境のせいかなと思っていましたが(レビューメッセージの内容的に)レポート見てみたらIPv6全然関係なかったです。

 

メモのつもりが結構ちゃんと書いちゃった。ではでは。

 

 

 

参考リンク


追記

(追記日: 2018-04-13)

もうクラッシュも怖くないぞ!!!(怖い

サイトアイコン
公開日
更新日