iOS .Crash文件分析處理辦法 (利用symbolicatecrash工具處理)

崩潰分析方式:命令行解析Crash文件bash

經過Mac自帶的命令行工具解析Crash文件須要具有三個文件服務器

  • symbolicatecrash,Xcode自帶的崩潰分析工具,使用這個工具能夠更精確的定位崩潰所在的位置,將0x開頭的地址替換爲響應的代碼和具體行數。
  • 咱們打包時產生的dSYM文件。
  • 崩潰時產生的Crash文件。

一、獲取.crash文件

獲取崩潰信息方式:app

  • 使用友盟、蒲公英等第三方崩潰統計工具。->iOS 友盟第三方崩潰統計的解析-dSYM
  • 本身實現應用內崩潰收集,並上傳服務器。
  • Xcode-Devices中直接查看某個設備的崩潰信息。
  • 使用蘋果提供的Crash崩潰收集服務。

這篇文章先只用第四個方式-審覈被拒給個人.crash文件,其餘方式之後討論。函數

二、獲取 .app 和 .app.dSYM 文件

2.一、步驟:

一、Xcode-Window-Organize找到要檢查的對應Archives找到App-右擊-Show in Finder工具

二、右擊 .xcarchive 文件-顯示包內容ui

三、分別複製dSYMs文件夾下的 **.app.dSYM 文件和 Products->Applications文件夾下的 app文件放入 .crash 文件所在的crash文件夾中(文件夾本身建的)。spa

2.二、dSYM 符號集介紹:

  • 符號集是咱們對ipa文件進行打包以後,和.app文件同級的後綴名爲.dSYM的文件,這個文件必須使用Xcode進行打包纔有。
  • 每個.dSYM文件都有一個UUID,和.app文件中的UUID對應,表明着是一個應用。而.dSYM文件中每一條崩潰信息也有一個單獨的UUID,用來和程序的UUID進行校對。
  • 咱們若是不使用.dSYM文件獲取到的崩潰信息都是不許確的。
  • 符號集中存儲着文件名、方法名、行號的信息,是和可執行文件的16進制函數地址對應的,經過分析崩潰的.Crash文件能夠準確知道具體的崩潰信息。

當程序崩潰的時候,咱們能夠得到到崩潰的錯誤堆棧,可是這個錯誤堆棧都是0x開頭的16進制地址,須要咱們使用Xcode自帶的symbolicatecrash工具來將.Crash和.dSYM文件進行符號化,就能夠獲得詳細崩潰的信息。命令行

三、獲取symbolicatecrash工具

一、打開終端輸入如下命令:code

find /Applications/Xcode.app -name symbolicatecrash -type f 我找到的是: /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 

二、用命令將symbolicatecrash拷貝到桌面的crash文件夾裏面,與.app和.app.dSYM放一塊兒orm

cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/***/Desktop/crash 

四、開始命令行解析Crash文件

一、打開終端用命令切換到桌面的crash目錄下:

cd /Users/***/Desktop/crash 

二、執行命令

./symbolicatecrash /Users/***/Desktop/crash/*.crash /Users/***/Desktop/crash/*.app.dSYM > jieguo.crash 2.一、 若是上面命令不成功,須要使用下面命令設置一下導出的環境變量,而後重複上面解析的操做。 export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer 

三、解析完成後會生成一個新的.Crash文件,這個文件中就是崩潰詳細信息。

 
解析前
 
解析後

使用友盟、蒲公英等第三方崩潰統計工具獲取的信息能夠用以下方式解析iOS 友盟第三方崩潰統計的解析-dSYM

相關文章
相關標籤/搜索