うるおいらんど

【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を開く。

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

 

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

 

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

 

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

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

 

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

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

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

 

ターミナルを開き、先ほど配置した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に書き出されます。

 

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

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全然関係なかったです。

 

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

 

 

 

参考リンク

Additional Notes追記

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

Comments

コメントはありません。

現在コメントフォームは工事中です。