iOSクラッシュログ解析手順
iOSクラッシュログ解析手順
MacとiPhoneをつなげれば、Xcodeでクラッシュログのシンボル変換を自動でしてくれますが、遠隔地のiPhoneのクラッシュログを送ってもらって、シンボル変換して解析したい場合の手順です。
1. ターミナルを起動して次の2つを行う
1-1 cd 作業ディレクトリ
1-2 パスが通っているディレクトリにシンボリックリンクを作成する(この例は作業ディレクトリに作成している)
sudo ln -s /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash ./symbolicatecrash
2. ~(user name)/.bash_profileにDEVELOPER_DIR定義を追加する
viなどで編集する
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/
3. コマンドラインツールをインストールする(MacのOSバージョン、Xcodeのバージョンと合わせる)
https://developer.apple.com/downloads/
Command Line Tools (OS X 10.10) for Xcode 7.1 をダウンロードしてインストール
4. ターミナルを再起動する
4-1 作業ディレクトリにいることを確認する
pwd
5. シンボル定義ファイルとクラッシュログを作業ディレクトリにコピーする
5-1 シンボル定義ファイル(クラッシュログをシンボル変換するために必要)
Xcodeでビルドした後に次のディレクトリに格納されている
xxx.app.dSYM/Users/(your name)/Library/Developer/Xcode/DerivedData/(product name)-xxx/Build/Products/Debug-iphoneos/(product name).app.dSYM
5-2 クラッシュログ
xxx.crash
<iPhoneからクラッシュログを取得する方法>
1) iPhone設定 - プライバシー をタップ
2) 画面下にスクロール
3) 診断/使用状況をタップ
4) 診断データと使用状況データをタップ
5) 一覧から該当する日付のデータをタップ
6) 英文の長い文章が表示されますので、長押しして、文章全体を選択してコピー(文章はとても長いですが、文書全体をブルーの選択状態にしてからコピーしてください。)
7) iPhone所有者にコピーした文章をメールなどで送ってもらう。
6. 解析実行
ターミナルで次のコマンドを実行する
解析結果が作業ディレクトリの crash_log.txt ファイルに保存される
./symbolicatecrash xxx.crash xxx.app.dSYM/ > crash_log.txt
7. 解析結果を見る
7-1 crash_log.txt をダブルクリックしてテキストエディットで開く
7-2 アプリの(product name)が表示されている行を見ると、どのモジュールの何行目で異常終了しているかがわかる
スタック形式なので、下から上に見る
エラーの内容まではわからないが、どこで異常終了しているかが分かれば想像はつく