1. 程式人生 > >iOS日常Debug之Crash日誌檔案分析

iOS日常Debug之Crash日誌檔案分析

好久沒寫部落格了,真的不是忙沒有時間。就是懶!閒話少說,言歸正傳。事件起因,群裡一個朋友說自己的app被拒了,蘋果給的被拒原因是AppStore稽核指南條例2.1,說是app存在崩潰。還附帶上了Crash日誌檔案。看了一眼Crash日誌檔案,徹底懵了!


What?(此處略過一句髒話)

一、檢視Crash日誌檔案資訊

看到這種東西,我第一反應就是跑去看官方文件

  • Incident Identifier:crash報告的唯一識別符號。
  • CrashReporter Key:每臺裝置的匿名識別符號。
  • Hardware Model:crash產生的裝置型別
  • OS Version:裝置作業系統版本
  • Exception Type:crash異常型別
  • Exception Codes:crash異常錯誤碼
  • Exception Note:crash異常附加資訊
  • Triggered by Thread:異常產生的執行緒。
  • Last Exception Backtrace:最後的異常回溯

然並卵,有了這些資訊還是看不懂啊!難道是開啟方式不對?

二、開始分析

我們可以用Xcode自帶的symbolicatecrash工具分析.crash檔案

1、找到Xcode自帶的symbolicatecrash工具路徑:

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

2、找到蘋果公司反饋的crash日誌檔案(我這裡只有一個連結,我直接把連結裡面的crash日誌內容儲存成了一個.crash檔案“XX.crash”)

3、找到崩潰app對應的dSYM檔案。(別人直接發了崩潰app的xcarchive檔案給我,.dSYM檔案就在xcarchive檔案的dSYMs資料夾下的“XX.app.dSYM”)

4、在終端執行以下命令:


symbolicatecrash路徑 XX.crash(蘋果公司給的crash日誌檔案路徑) XX.app.dSYM(崩潰app對應的dSYM檔案路徑) > 輸出檔案路徑

如果在執行命令的過程中會出現錯誤資訊:“Error: “DEVELOPER_DIR” is not defined at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 69.”

解決方案:

在終端執行export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

執行完成後,再執行第4步。

第4步執行具體過程如下圖所示:

三、分析結果

經過以上4步之後,我們可以在開啟桌面上生成的crash檔案(我的輸出路徑是”~/desktop/exam.crash”)。

這樣是不是思路就清晰了很多?接下來定位bug就看你的了!

本文內容中部分參考網路資料,後續會不斷更新完善。歡迎一起學習交流!

四、參考文章地址: