iOS應用崩潰日誌.crash報告符號化/.dYSM符號表手動解析(Objective-C)
2018.4.22
自動解析
藉助第三方平臺,我選擇的是鵝廠出品的Bugly,老老實實地按照文件去配置好你的工程,特別是符號表的配置,那就一切OK了,發生Crash的時候,去後臺看,對應的crash資訊都是已經自動符號化完成了的。Bugly iOS 符號表配置
手動解析
1.崩潰日誌.crash
匯出
方式一,開啟Xcode >
Window
>Devices and Simulators
> 選擇相應的裝置 >View Device Logs
> 找到相應的crash log >Export Log
儲存到桌面
方式二,開啟Xcode >Window
>Organizer
>Crashes
> 找到相應的log,點選Show in Finder
,開啟多層資料夾,然後找到相應的.crash
檔案,複製到桌面. (一般情況下,此處的資訊是已經被符號化過的,可以直接檢視到具體崩潰資訊的,無需額外手動解析了)
方式三,應用稽核時發生的Crash,像我悲催的遇到了,AdHoc版本沒問題,AppStore版本就是會崩潰,真是簡直了;將稽核反饋資訊中附帶的.txt
下載到桌面,改變字尾為.crash
2.符號表檔案.dYSM
匯出
注:
.dSYM
檔案是iOS編譯後儲存16進位制函式地址對映資訊的檔案,每次應用程式build
後,都會生成對應的xxx.app
,xxx.app.dSYM
檔案,不過前提是,你沒有亂搞你的工程配置;在工程配置中設定生成.dSYM檔案 ,Build Settings -> Debug information format -> 選DWARF with dSYM File ,打包時就會生成dSYM檔案
方式一,獲取.archive
檔案,前往資料夾/使用者/使用者名稱/資源庫/Developer/Xcode/Archives
-> 找到目標build
版本對應的.archive
檔案 > 顯示包內容,找到其中的xxx.app.dSYM
檔案,複製到桌面
方式二,如果已經成功上架商店了,那麼可以選擇,開啟Xcode >Window
>Organizer
>Archives
> 選擇正確的Build
版本,右邊資訊欄點選Download dYSMs...
下載檔案到桌面
方式三,從iTunes Connect網站下載dSYM檔案,1. 開啟App Details頁面。2. 點選活動。3. 從所有版本列表中選擇一個版本。4. 點選**下載dSYM**連結。
Technical Note TN2151 反正我到現在也沒找著那個所謂的下載連結了,ok,我承認我很笨 = = 。
3.指令碼檔案symbolicatecrash
匯出
Xcode 7及之前的版本應該是,前往資料夾
使用者/使用者名稱/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources
Xcode 7之後的版本是,使用者/使用者名稱/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources
當然,也可以直接在應用資料夾中找到Xcode.app
顯示包內容,手動進到Resources
資料夾了
複製symbolicatecrash
指令碼檔案到桌面
4.手動解析.
現在我們有了
.crash
日誌檔案,.dYSM
符號表檔案,以及symbolicatecrash
指令碼檔案,新建一個資料夾,隨意命名為crashAnalysis
,將3個檔案都拖入其中;command
+空格
開啟spotlight
,輸入ter
開啟終端,終端中輸入cd
+空格
,將crashAnalysis
拖入終端以自動補充檔案路徑,點選回車;即,進入到桌面crash資料夾中
終端中繼續輸入命令:進行crash日誌解析
./symbolicatecrash xxx.crash的檔案路徑 xxx.app.dSYM的檔案路徑 > log.crash
如果終端報錯:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
輸入:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
然後再輸入:進行crash日誌解析
./symbolicatecrash xxx.crash的檔案路徑 xxx.app.dSYM的檔案路徑 > log.crash
現在,
crashAnalysis
資料夾中會新增檔案log.crash
,這個就是已經符號化完成了的日誌檔案了。那麼,江湖再見咯~
參考連結:我怎麼可能那麼聰明,沒有參考連結就能搞的定呢~
1.iOS crash報告符號化,.ips檔案分析
2.Bugly,手動生成符號表的步驟
3.iOS通過dSYM檔案分析crash
4.Where is located symbolicatecrash in Xcode 8?
相關文章
- Crash 日誌符號化符號
- iOS Crash日誌分析必備:符號化系統庫方法iOS符號
- iOS Crash不崩潰iOS
- IOS 崩潰日誌分析iOS
- iOS應用崩潰了,如何透過崩潰手機連線電腦查詢日誌方法iOS應用崩潰
- iOS 逆向 - Hook / fishHook 原理與符號表iOSHook符號
- 查詢 - 符號表符號
- iOS crash 日誌堆疊解析iOS
- SVN常見符號解析符號
- Flutter異常捕獲和Crash崩潰日誌收集Flutter
- 快速解決崩潰服務上傳原生符號檔案失敗符號
- 回車符號 ‘ ’ 的實際應用符號
- [C]有符號數和無符號數符號
- CSS @ 符號CSS符號
- 符號(註釋符+轉義符+接續符)符號
- Crash日誌解析
- WWDC 2018:理解崩潰以及崩潰日誌
- Adobe:2019年表情符號趨勢報告符號
- dotNet符號檔案(pdb),符號包(snupkg)和SourceLink符號
- 編譯器的符號表管理編譯符號
- 符號連結符號
- 流程圖符號流程圖符號
- 找不到符號符號
- 識別符號符號
- python 中 *符號Python符號
- python:LEGB識別符號解析順序Python符號
- 無法解析外部符號:AdjustTokenPrivileges和GetAstncKetState符號AST
- 使用去中心化識別符號 (DID) 作為識別符號元系統中心化符號
- 圖形化還原崩潰地址 iOS的crash檔案分析iOS
- matlab符號表示式的化簡Matlab符號
- IOS15.4新增“男媽媽”表情符號iOS符號
- MD 數學符號與公式表達符號公式
- 深入理解ES6--6.符號與符號屬性符號
- iOS-Crash日誌抓取iOS
- latex 屬於符號和根號符號
- 讓您的應用支援新式的 Emoji 符號吧!符號
- VS2017無法解析得外部符號符號
- Markdown數學符號符號