クラッシュログを解析してみたり
iPhoneのAdHocテストなどの出るクラッシュログ。
アプリのシンボルコードが無くなって、分かりづらいですね。
シンボルコードを付ける方法を調べてやってみました。
symbolicatecrash というツールを使うとクラッシュログにシンボルを付加して、
こんなクラッシュログが、
0 appname 0x00003466 0x1000 + 9318
1 appname 0x00002a7c 0x1000 + 6780
こんな風に変わり、分かりやすくなります。
0 appname 0x00003466 -[appnameViewController awakeFromNib] (appnameViewController.m:103)
1 appname 0x00002a7c -[appnameAppDelegate applicationDidFinishLaunching:] (appnameAppDelegate.m:22)
Xcode 3.2.4での話ですが、symbolicatecrash はココにありました。
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash
symbolicatecrash は、ターミナルで使うコマンドなので、パスが通った所にコピーします。
例えば /usr/bin。
ターミナルでUnixのコマンドでコピーしても良いですし、
ファインダーの「フォルダに移動」を使い、"/usr/bin"を開いて、そこにコピーしても良いですね。
symbolicatecrash は、もともと実行権限をもっているのでそのままでOK。
心配な人は ls -l で確認して実行権限が無ければ chmod か、BatChmodというGUIツールで変更してください。
symbolicatecrash の使い方です。
symbolicatecrashは、HD内の対応するdSYMを探してきてくれるので、
symbolicatecrash クラッシュログ > 保存したいテキストファイル名
これで出来ます。
ただし、そのクラッシュログと対応したdSYMがHDの中に保存されている必要があります。
dSYM はビルドした時にできるシンボルを格納したファイルだとか。
AdHoc配布やAppStoreにアップする時は、どこかに保存しておく事をお勧めしますです。
クラッシュログを送られてきて、解析できなくて大弱り、、という事にならないための転ばぬ先にdSYMを保存です。
それにしても、こんな事が出来るようになってるなんて、世の中進んだものだなぁ。
単に私が知らないだけだったんですけどね。