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就看你的了!

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

四、參考文章地址:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章