Xcode独自のツールsymbolicatecrash iOS Crashファイルの解析
4265 ワード
一、紹介
とは、Xcodeプロジェクトのコンパイル後にコンパイル生成されたバイナリファイルをいう.appの同級ディレクトリの下で生成する同名の.dSYMファイル.dSYMファイルは実は1つのディレクトリで、サブディレクトリに16進数の関数アドレスマッピング情報を保存する中継ファイルが含まれており、すべてのDebugのsymbolsがこのファイル(ファイル名、関数名、行番号などを含む)に含まれているので、
とも呼ばれます.一般的に、Xcodeプロジェクトはコンパイルするたびに、新しいものが生成される.dSYMファイル.したがって、Appの各リリースでは、対応するバックアップが必要となる.dSYMファイルは、後でデバッグして問題を特定するために使用されます.二、crashログの符号化
1、準備:
find /Applications/Xcode.app -name symbolicatecrash -type f
symbolicatecrashスクリプトツールパスを取得し、そのパスを押してツールを見つけます.
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
2、アプリケーションがApp Storeを発行した場合、ユーザーがインストールして使用する前に開発者はiTunes Connectでクラッシュログを表示することができ、その後アップルはXcodeにあなたのアカウントにログインし、Xcode-Window-organizer-Crashesを開く方法に変更した.
(PS:しかし、多くの送信者はこれに依存していません.これは、ユーザーデバイス上で関連情報のアップロードに同意する必要があるためです.すべてのiPhoneユーザーが診断レポート(crashログ)の送信を許可しているわけではないことを考慮し、Appleのcrashログの一部を提出する場合、開発者は手動で引き出し、対応するシンボルファイルを見つけて解析する必要があります.これは煩わしいことです.したがって、実際のプロジェクトでは、通常、既存のcrash収集ツールにアクセスしたり、自動化収集、解析、統計要約を作成したりします.したがって、実際のプロジェクトでは、通常、既存のcrash収集ツールにアクセスしたり、自動化収集、解析、統計要約を作成したりします.)
Xcode-Window-Organizer-Archivesで、対応するバージョンを見つけてShow in Finderを右クリックしてxxxを見つけます.xcarchiveパッケージの内容を右クリックし、dSYMsフォルダを見つけます
プロジェクト内のProductsディレクトリ
2、操作:
同じディレクトリの下に置いて、コマンドを実行します.
./symbolicatecrash xxx.crash xxx.app.dSYM > Control_symbol.crash
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
三、シンボル化されたcrashログを分析する
1、デバイスとcrash情報Incident Identifier: F3573A...E2F244A //crash id
CrashReporter Key: cc2298...es77eeb //crash id
Hardware Model: iPhone7,2 //
Process: [AppName] [1816] //APP [ id]
Path: /private/.../Application... //APP
Identifier: com.... //bundle ID
Version: 14 (2.3.5) //
Code Type: ARM-64 (Native) //app ,^_^
Parent Process: launchd [1]
Date/Time: 2015-10-26 15:03:29.29 +0800 //crash
Launch Time: 2015-10-26 14:58:28.28 +0800 //
OS Version: iOS 9.1 (13B143) //iOS
Report Version: 105
2、異常情報Exception Type: EXC_BAD_ACCESS (SIGABRT) //
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000118 //
Triggered by Thread: 0 // (0 , )
3、スレッド情報Last Exception Backtrace:
0 CoreFoundation 0x182780f48 __exceptionPreprocess + 124
1 libobjc.A.dylib 0x197333f80 objc_exception_throw + 56
2 CoreFoundation 0x182780e90 +[NSException raise:format:] + 120
3 [AppName] 0x100c42a40 UmengSignalHandler + 144
4 libsystem_platform.dylib 0x197d6193c _sigtramp + 52
5 [AppName] 0x1005d9f38 CScopePtr::operator IAVGAudioLogic*() (xprefc.h:165)
6 [AppName] 0x1005d3b8c tencent::av::AVRoomMultiImpl::GetAudioLogic() (av_room_multi_impl.h:119)
7 [AppName] 0x10057076c tencent::av::AVAudioCtrlImpl::SetAudioOutputMode(int) (av_audio_ctrl_impl.cpp:443)
8 [AppName] 0x10044dc3c -[AVBasicManager changeSpeakerMode:] (AVManager.mm:525)
9 [AppName] 0x100296e1c -[KTQAVRoom enableSpeakerMode:] (KTQAVRoom.m:345)
10 [AppName] 0x1002970d0 -[KTQAVRoom settingSpeaker:] (KTQAVRoom.m:362)
11 [AppName] 0x1003d5464 -[KTChatView onAudioNotificationReceived:] (KTChatView.m:685)
四、友盟SDKへのアクセス
参照リンク:http://www.jianshu.com/p/12a2402b29c2
Incident Identifier: F3573A...E2F244A //crash id
CrashReporter Key: cc2298...es77eeb //crash id
Hardware Model: iPhone7,2 //
Process: [AppName] [1816] //APP [ id]
Path: /private/.../Application... //APP
Identifier: com.... //bundle ID
Version: 14 (2.3.5) //
Code Type: ARM-64 (Native) //app ,^_^
Parent Process: launchd [1]
Date/Time: 2015-10-26 15:03:29.29 +0800 //crash
Launch Time: 2015-10-26 14:58:28.28 +0800 //
OS Version: iOS 9.1 (13B143) //iOS
Report Version: 105
Exception Type: EXC_BAD_ACCESS (SIGABRT) //
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000118 //
Triggered by Thread: 0 // (0 , )
Last Exception Backtrace:
0 CoreFoundation 0x182780f48 __exceptionPreprocess + 124
1 libobjc.A.dylib 0x197333f80 objc_exception_throw + 56
2 CoreFoundation 0x182780e90 +[NSException raise:format:] + 120
3 [AppName] 0x100c42a40 UmengSignalHandler + 144
4 libsystem_platform.dylib 0x197d6193c _sigtramp + 52
5 [AppName] 0x1005d9f38 CScopePtr::operator IAVGAudioLogic*() (xprefc.h:165)
6 [AppName] 0x1005d3b8c tencent::av::AVRoomMultiImpl::GetAudioLogic() (av_room_multi_impl.h:119)
7 [AppName] 0x10057076c tencent::av::AVAudioCtrlImpl::SetAudioOutputMode(int) (av_audio_ctrl_impl.cpp:443)
8 [AppName] 0x10044dc3c -[AVBasicManager changeSpeakerMode:] (AVManager.mm:525)
9 [AppName] 0x100296e1c -[KTQAVRoom enableSpeakerMode:] (KTQAVRoom.m:345)
10 [AppName] 0x1002970d0 -[KTQAVRoom settingSpeaker:] (KTQAVRoom.m:362)
11 [AppName] 0x1003d5464 -[KTChatView onAudioNotificationReceived:] (KTChatView.m:685)
参照リンク:http://www.jianshu.com/p/12a2402b29c2