一:介紹
1、什么是符號(hào)表毛萌?
符號(hào)表是內(nèi)存地址與函數(shù)名苟弛、文件名、行號(hào)的映射表阁将。
符號(hào)表元素如下所示:
<起始地址> <結(jié)束地址> <函數(shù)> [<文件名:行號(hào)>]
2膏秫、為什么要配置符號(hào)表?
為了能快速并準(zhǔn)確地定位用戶APP發(fā)生Crash的代碼位置冀痕,Bugly使用符號(hào)表對(duì)APP發(fā)生Crash的程序堆棧進(jìn)行解析和還原荔睹。
舉一個(gè)例子:Bugly提供了自動(dòng)和手動(dòng)兩種方法配置iOS符號(hào)表。
二言蛇、自動(dòng)配置:XCode + sh腳本(推薦)
1僻他、自動(dòng)配置請(qǐng)首先下載和解壓自動(dòng)配置符號(hào)表工具包,然后選擇上傳方式并配置Xcode的編譯執(zhí)行腳本腊尚。
2吨拗、直接上傳dSYM文件(默認(rèn)方式 )
配置Xcode編譯執(zhí)行腳本
-
在Xcode工程對(duì)應(yīng)Target的Build Phases中新增Run Scrpit Phase
打開(kāi)工具包中的dSYM_upload.sh,復(fù)制所有內(nèi)容婿斥,在新增的Run Scrpit Phase中粘貼
修改新增的Run Scrpit中的 內(nèi)容:
<YOUR_APP_ID> 為您的App ID
<YOUR_APP_KEY>為您的App Key
<YOUR_BUNDLE_ID> 為App的Bundle Id
注意事項(xiàng):
腳本默認(rèn)在Debug模式及模擬器編譯情況下不會(huì)上傳符號(hào)表劝篷,在需要上傳的時(shí)候,請(qǐng)修改下列選項(xiàng)
- Debug模式編譯是否上傳民宿,1=上傳 0=不上傳娇妓,默認(rèn)不上傳
UPLOAD_DEBUG_SYMBOLS=0 - 模擬器編譯是否上傳,1=上傳 0=不上傳活鹰,默認(rèn)不上傳
UPLOAD_SIMULATOR_SYMBOLS=0
至此哈恰,自動(dòng)上傳符號(hào)表腳本配置完畢,Bugly 會(huì)在每次 Xcode 工程編譯后自動(dòng)完成符號(hào)表配置工作志群。
三着绷、手動(dòng)配置
手動(dòng)配置的流程如下:
-
下載最新版Bugly iOS符號(hào)表工具,其中工具包中包括:
- 符號(hào)表工具JAR包(buglySymboliOS.jar)
- Windows的腳本(buglySymboliOS.bat)
- Shell腳本(buglySymboliOS.sh)
- 默認(rèn)符號(hào)表配置文件(settings.txt)
-
符號(hào)表工具iOS版-使用指南
根據(jù)Crash的UUID定位dSYM文件
使用工具生成符號(hào)表文件(zip文件)
在頁(yè)面上傳符號(hào)表文件
注意事項(xiàng):
環(huán)境要求 : 符號(hào)表工具的運(yùn)行需要Java運(yùn)行環(huán)境
示例操作:
1锌云、將Xcode生成的dSYM文件拷貝至桌面
2荠医、生成符號(hào)表文件
使用符號(hào)表工具的JAR包生成符號(hào)表文件的命令如下:
cd /Users/liuyi/Downloads/buglySymboliOS2.4.3\ \(1\)
java -jar buglySymboliOS.jar -i /Users/liuyi/Desktop/HDGansuKJG.app.dSYM
生成的符號(hào)表文位于: /Users/liuyi/Desktop/
3、上傳 buglySymbol_HDGansuKJG_arm64-f1abe.zip 文件
四桑涎、dSYM文件
什么是dSYM文件彬向?
iOS平臺(tái)中,dSYM文件是指具有調(diào)試信息的目標(biāo)文件攻冷,文件名通常為:xxx.app.dSYM娃胆。如下圖所示:為了方便找回Crash對(duì)應(yīng)的dSYM文件和還原堆棧,建議每次構(gòu)建或者發(fā)布APP版本的時(shí)候讲衫,備份好dSYM文件缕棵。
如何定位dSYM文件?
一般情況下涉兽,項(xiàng)目編譯完dSYM文件跟app文件在同一個(gè)目錄下招驴,下面以XCode作為IDE詳細(xì)說(shuō)明定位dSYM文件。
-> 進(jìn)入XCode枷畏;
-> 打開(kāi)工程(已編譯過(guò))别厘;
-> 在左欄找到“Product”項(xiàng);
-> 鼠標(biāo)右鍵點(diǎn)擊編譯生成的“xxx.app”拥诡;
-> 點(diǎn)擊“Show in Finder”触趴;
如下圖所示:XCode編譯后沒(méi)有生成dSYM文件?
XCode Release編譯默認(rèn)會(huì)生成dSYM文件渴肉,而Debug編譯默認(rèn)不會(huì)生成冗懦,對(duì)應(yīng)的Xcode配置如下:
XCode -> TARGETS -> Build Settings -> Code Generation -> Generate Debug Symbols -> Yes
XCode -> TARGETS -> Build Settings -> Build Option -> Debug Information Format -> DWARF with dSYM File