標籤:
引言
當我們的項目打包上傳蘋果商店之後,出現的崩潰問題不會想在XCode中那麼明顯了,那麼我們就要對項目的crash日誌進行分析,至此,友盟的崩潰分析作用就體現出來了。
前提
什麼是 dSYM 檔案
Xcode 編譯項目後,我們會看到一個同名的 dSYM 檔案,dSYM 是儲存 16 進位函數地址映射資訊的中轉檔案,我們調試的 symbols 都會包含在這個檔案中,並且每次編譯項目的時候都會產生一個新的 dSYM 檔案,位於 /Users/<使用者名稱>/Library/Developer/Xcode/Archives 目錄下,對於每一個發布版本我們都很有必要儲存對應的 Archives 檔案 ( AUTOMATICALLY SAVE THE DSYM FILES 這篇文章介紹了通過指令碼每次編譯後都自動儲存 dSYM 檔案)。
dSYM 檔案有什麼作用
當我們軟體 release 模式打包或上線後,不會像我們在 Xcode 中那樣直觀的看到用崩潰的錯誤,這個時候我們就需要分析 crash report 檔案了,iOS 裝置中會有記錄檔儲存我們每個應用出錯的函數記憶體位址,通過 Xcode 的 Organizer 可以將 iOS 裝置中的 DeviceLog 匯出成 crash 檔案,這個時候我們就可以通過出錯的函數地址去查詢 dSYM 檔案中程式對應的函數名和檔案名稱。大前提是我們需要有軟體版本對應的 dSYM 檔案,這也是為什麼我們很有必要儲存每個發布版本的 Archives 檔案了。
如何擷取項目的dSYM 檔案
Xcode -> Window -> Organization -> Archieves
下載dSYM檔案之後,直接show in finder 找到對應的檔案
當然,如果當時的項目包不是你提交appStore的,也打包的人同樣的方法提供dSYM檔案。
至此,dSYM檔案準備好了。
擷取友盟錯誤資訊
登入友盟控制後台,選擇 對應的項目 -> 友盟統計 -> 錯誤分析 -> 錯誤清單 進入錯誤詳情。如:
在終端鍵入 劃線處的命令,斷行符號,相關的錯誤資訊就會出來了,如:
至此,就定位到崩潰的那一個類的那一行代碼了。
利用友盟定位iOS線上版本項目的崩潰位置