1. 程式人生 > >Bugly不認真看文件,遇到的坑

Bugly不認真看文件,遇到的坑

騰訊bugly 統計crash 不認真看文件,搞得我找個bug找了兩天,無意發現的。愛偷懶,不把文件認真看,直接整合,害的自己看bugly上面的一個bug找了好久,最主要是定位不到到底是哪裡出問題。

我把bugly植入後。用Xcode 無論是release模式和dubug模式下crash,都能看到是在哪個執行緒的哪個方法執行時崩潰。如圖1
這裡寫圖片描述
可以清晰的看到是類的哪個方法crash。
然後就把App上線了。但是上線後,bugly返回的crash 資訊就看著蛋疼了。如圖2
這裡寫圖片描述
完全看不到是哪個類的哪個方法crash的。這時候好懵逼,根本不知道怎麼去定位crash的位置。
這個問題要怎麼解決呢?
問了一下很有經驗的朋友,他告訴我要符號表配置

。並扔來https://bugly.qq.com/iossymbol 之前都沒認真看。坑自己呀。
所謂符號表配置 簡單易懂的講解,看下圖3。
這裡寫圖片描述
什麼是符號表? 看圖對照下就知道了。
符號表是記憶體地址與函式名、檔名、行號的對映表。符號表元素如下所示:
<起始地址> <結束地址> <函式> [<檔名: 行號>]
其實在沒有符號表配置之前,並且是你用Xcode 直接跑,無論是真機還是模擬器,debug還是release 都是bugly 都是以圖1 的形式給你返回crash 。但是如果你上線之後。會發現,其實bugly會以圖2的方式給你返回crash 讓你定位不到crash 所在地。如果你看到的是圖2這種形式,那可以很負責的告訴你,要去符號表配置。
如何符號表配置
https://bugly.qq.com/iossymbol

文件上寫的很清楚,只需要三步
1.符號表提取工具依賴 java 執行環境 java 環境下載,JRE或JDK版本需要 >= 1.6
配置下java環境, 就下一個包。下載好後安裝,mac就是爽,配置環境就是秒殺。
2.把符號表提取工具buglySymboliOS.jar 儲存在 ~/bin 目錄下 (如果使用者主目錄沒有bin資料夾,請自行建立,如下圖所示)
3.在 Xcode 工程對應 Target 的Build Phases中新增Run Scrpit Phase 並進行修改。就可以了。 還是參考文件來。
所以當你的線上愛啪啪(app)bugly返回資訊無法顯示crash類名和方法時。看看自己是否已經符號表配置。