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系統app崩潰日誌手動符號化iOSAPP符號
- Crash 日誌符號化符號
- iOS Crash日誌分析必備:符號化系統庫方法iOS符號
- iOS Crash 捕獲及堆疊符號化思路剖析iOS符號
- 深入理解Android NDK日誌符號化Android符號
- iOS Crash不崩潰iOS
- IOS 崩潰日誌分析iOS
- iOS應用崩潰了,如何透過崩潰手機連線電腦查詢日誌方法iOS應用崩潰
- 棧的應用---平衡符號符號
- iOS 逆向 - Hook / fishHook 原理與符號表iOSHook符號
- 查詢 - 符號表符號
- SVN常見符號解析符號
- 符號表與雜湊表符號
- 快速解決崩潰服務上傳原生符號檔案失敗符號
- Flutter異常捕獲和Crash崩潰日誌收集Flutter
- iOS crash 日誌堆疊解析iOS
- 無法解析的外部符號符號
- 無符號數相減得到的是無符號還是有符號?符號
- 回車符號 ‘ ’ 的實際應用符號
- [C]有符號數和無符號數符號
- CSS @ 符號CSS符號
- 特殊符號符號
- 符號使用符號
- maven報錯:找不到符號Maven符號
- 符號(註釋符+轉義符+接續符)符號
- 趣探 Mach-O:符號解析Mac符號
- Crash日誌解析
- 關於有符號與無符號的位元組符號
- 編譯器的符號表管理編譯符號
- 下載微軟符號表的教程微軟符號
- 符號連結符號
- Google Map 符號Go符號
- Html 特殊符號HTML符號
- PHP基本符號PHP符號
- Shell 符號(轉)符號
- 關於VS報無法解析外部符號的錯誤符號
- iOS Url特殊符號編碼問題iOS符號