iOS崩潰日志ips文件解析


iOS崩潰日志ips文件解析 

一 簡介

  測試組的同事在進行穩定性測試時,通常會遇到一些崩潰,然后他們會將這些崩潰日志(一般是ips格式的文件)反饋給開發進行分析,但是這些ips文件中的內容通常是如下圖這樣的,都是一些十六進制的堆棧地址,如果僅僅根據這些堆棧地址,我們基本無法做任何事情,連最基本的崩潰定位都做不到。那么,在iOS開發中,還有一些其他的方法可以幫助我們將這些堆棧信息轉化為可視化的日志文件,在轉化后的可視化日志文件中,我們可以清晰定位到我們的應用崩潰的位置,如下圖2所示。

  這個轉化的過程有一個專業術語,叫符號化,就是講這些堆棧地址轉化為我們可識別的一些類名、方法名等符號信息。

二 解析步驟

  所以,如何實現這樣的轉化是一個很重要的問題。網上查了很多資料,現在網上一般說是有兩種方法:

  • 命令行解析ips
  • 使用Xcode解析ips/crash

2.1 准備工作,獲取.xcarchive文件

  我主要采用的是第一種方法利用命令行解析ips,在這種方法中,有一個前提准備工作要做,就是要獲得我們打包時的.xcarchive文件,具體獲取方法是打開xcode,點擊 【window】 --> 【Organizer】,進入到我們打包Archives的管理界面,這個界面有我們之前打的包的所有記錄,選擇測試App對應的App以及打包的版本,單擊選中的Archive選擇 show in Finder,然后將對應的.xcarchive文件拷貝出來,放在桌面或其他自己方便查看的地方。如果不是你負責打包,那么你需要找到打包負責人拿到對應的.xcarchive文件。

2.2 解析具體步驟

  1. 新建一個文件夾,名字叫Acrash。
  2. 拷貝.ips文件放到Acrash中,並將.ips文件后綴名該為.crash。 
  3. 前往文件夾路徑:【/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash】,找到symbolicatecrash。拷貝symbolicatecrash工具拷貝到Acrash中。具體步驟是打開Finder,【前往】-->【 前往文件夾】,在彈出的對話框中輸入上述地址/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash,點擊【前往】即可定位到對應的symbolicatecrash工具,然后選擇拷貝即可。
  4. 從xcarchive文件里,右鍵點擊【顯示包內容】,從Products/Applications里面拷貝.app文件,放到Acrash中。
  5. 從xcarchive文件里,右鍵點擊【顯示包內容】,拷貝dSYMs文件下的.dSYM文件,放到Acrash中。

    至此,Acrash文件中總共有4個文件:.crash文件、symbolicatecrash工具、app文件、.dSYM文件。

 

6. 打開終端,cd到Acrash文件夾中

7. 輸入命令  ./symbolicatecrash crash文件的絕對路徑 dSYM的絕對路徑 > log.crash ,回車。

 

    【注意1】:log.crash是符號化后的文件名。可以自定義文件名(后綴一定是.crash哈)。

 

    【注意2】:7步驟之后,終端有可能會報錯Error: Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.. 這時候在終端中再輸入

     export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer 

        然后再次運行 7 的命令。應該就能看到Acrash文件夾下,可以發現多了一個文件:log.crash。


  OK,整個過程基本就是這樣了,得到最后的log.crash之后,我們就比較方便定位問題所在了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM