iOS Crash日誌收集與解析
Crash日誌收集與解析
一、本地crash日誌收集
1、 把發生crash的裝置連線到你的電腦上,用 iTunes 或 itools
Mac OS X:~/Library/Logs/CrashReporter/MobileDevice
Windows 7/Vista:
C:\Users\計算機登入名\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice
2、或者 開啟itools,在你的裝置下,找到“高階功能”,點選“崩潰日誌”,然後將需要的日誌匯出到電腦裡面就可以了!
3、還可以支援從 Xcode -> Window -> Devices -> 相應的裝置 -> View Device Logs ->
二、線上crash日誌收集
1、��線上bug收集,Xcode -> Window –> Organzer–> Crashs –> 選擇相應版本的,就可以看到crash日誌,不過,這個日誌收集是有延遲。但是 收集crash功能需要使用者設定->隱私->診斷與用量->診斷與用量資料(iOS8一下在通用中設定) 選擇自動傳送,並與開發者共享即可;所以不推薦用。
2、第二種就是自己根據收集 Crash 日誌,上傳到伺服器 ,可參考第三方框架 如 KSCrash,plcrashreporter,CrashKit 等。
3、使用第三方工具收集Crash日誌,如Crashlytics,Hockeyapp ,友盟,Bugly 等等。
三、crash日誌解析
1、一般的情況,線上和本地獲取的crash日誌,都是已經被解析過的。能很明顯的定位到具體的crash 原因。
2、但是有些情況,獲取的日誌是十六進位制的日誌,完全是讀不懂什麼的。這時候就需要自己去使用symbolicatecrash解析或者使用 命令列工具atos去解析。
symbolicatecrash解析crash日誌
1、找到你之前打包上線 .dSYM 和 二進位制檔案,及app 的 .crash 檔案。
2、在桌面新建一個資料夾,然後把三者放在一塊,
3、使用終端 cd 開啟之前你建立的檔案,雙擊開啟 .crash 檔案,檢視crash資訊 執行終端:
Here is the code:
* in Xcode find symbolicatecrash
$ cd /Applications/Xcode.app/
* #找到 symbolicatecrash 地址
$ find . -name symbolicatecrash
$ export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
$ /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash appName.crash appName.app > appName.log
4、雙擊 appName.log 控制檯上就可以檢視被解析出來的 crash 日誌。
atos解析crash日誌
atos 命令解析日誌,不再詳解,可以參考一下文章連結內的內容。
開啟終端:
* in atos 備註
* kkkk
xcrun atos -arch armv7 -o AskDr.app/AskDr 0x00144c00 0xfe000 + 289792