什麼是symbolicatecrash
symbolicatecrash是Xcode自帶的一個分析工具,可以通過機器上的崩潰日誌和應用的.dSYM文件定位發生崩潰的位置,把crash日誌中的一堆地址替換成代碼相應位置。
爲什麼要用symbolicatecrash
開發者調試錯誤只需要有真機,並且連接到xcode上,就可以跟蹤發現錯了。
但是如果你的APP不是安裝在你自己的真機上,比如你的APP發佈到App Store(客戶下載後你如何跟蹤你的APP在他們的機器上?)這時候就要用到symbolicatecrash。
當一款APP軟件在IOS設備上崩潰的時候,一份“crash report”將會自動創建並且存儲在設備上。crash report描述了APP崩潰的日誌。在大多數情況下,包括對每個線程執行一個完整的堆棧跟蹤,查看該日誌對於APP崩潰調試非常有用。
如何查看iphone上的崩潰日誌
// ios8之前
設置
通用
關於本機
診斷與用量
診斷與用量數據
// iOS 8
設置
隱私
診斷與用量
診斷與用量數據
如何同步設備日誌到我們的mac上
如果是其他用戶並且是APP Store下的APP,需要用戶在'如何查看iphone上的崩潰日誌'中,將《自動發送》開啓,打開《與應用開發者共享》,這樣用戶的APP崩潰後,會提示發送崩潰日誌到開發者,開發者就可以在iTunes Connect中下載這些崩潰日誌。 如果是手中的真機 直接將IPHONE連接到iTunes,打開 xcode->window->devices
,導出你需要的崩潰日誌即可
導入步驟
如何使用symbolicatecrash分析崩潰日誌
Step 1:在你的MAC桌面創建一個新文件夾,並且命名爲"CrashReport"
Step 2:打開前往應用程序,找到 Xcode 應用程序, 右擊它選中 “顯示包內容” ,之後根據下面提供的路徑
Xcode6.0之前:
"Contents->Developer->Platforms->iPhoneOS.platform->Developer->Library->PrivateFrameworks->DTDeviceKit.framework->Versions->A->Resources"
OR
"Contents->Developer->Platforms->iPhoneOS.platform->Developer->Library->PrivateFrameworks->DTDeviceKitBase.framework->Versions->A->Resources"
Xcode6.0之後
改成 "Contents/SharedFrameworks"
實在找不到可以打開終端輸入 find /Applications/Xcode.app -name symbolicatecrash -type f
,然後終端會返回這個文件的路徑
只要找到"symbolicatecrash" 文件, 複製然後粘貼到剛纔創建的 “CrashReport” 文件夾裏面.
Step 3: 從Xcode Archive的二進制文件中找到.dSYM文件和.app文件拷貝到剛纔創建的 “CrashReport” 文件夾裏面.
Step 4:打開終端進入CrashReport文件夾,依次輸入以下命令行:
cd /Users/username/Desktop/CrashReport
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer
./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
這時候終端將會進行處理……
處理結果是生成一個新的文件symbol.crash。然後打開這個文件。
你就會看到日誌跟我們調試APP的控制檯輸出的內容一樣了!