當(dāng)需要客戶協(xié)助分析App閃退的問(wèn)題時(shí),需要拿到客戶手機(jī)中的崩潰日志文件(如果客戶有意愿配合),如何拿到崩潰日志文件,有兩種形式:
1. 客戶的手機(jī)與iTunes同步,然后根據(jù)Windows、Mac平臺(tái)找到目錄下的crash文件(對(duì)客戶來(lái)說(shuō)感覺(jué)很麻煩,這種不介紹)
2. 通過(guò)客戶手機(jī) -> 隱私 -> 分析或分析與改進(jìn) -> 分析數(shù)據(jù) -> App崩潰節(jié)點(diǎn)日志 -> 點(diǎn)擊 -> 右上角分享,這種方式動(dòng)幾下手指就可以了容易接受
拿到客戶的文件要改成crash后綴的文件: xxx.crash**
dSYM文件
接下來(lái)找到dSYM文件:
1. 如果已明確針對(duì)版本備份直接復(fù)制過(guò)來(lái)就好了
2. Xcode -> Window -> Organizer -> App -> 對(duì)應(yīng)版本 -> 右鍵 Show In Finder -> 顯示包內(nèi)容 -> dSYMs -> xx.app.dSYM顯示包內(nèi)容 -> 直搗黃龍 Contents/Resources/DWARF/最終dSYM文件 -> 復(fù)制出來(lái)
日志符號(hào)化
比如,在桌面創(chuàng)建個(gè)文件夾:「app-crash」,把crash文件和dSYM文件放到里面。
分析工具
(寫(xiě)本文時(shí)Xcode版本為:Version 11.4.1 (11E503a))
利用Xcode自帶的符號(hào)化分析工具「symbolicatecrash」,它在Xcode軟件包內(nèi):/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources
為了方便使用,你可以在用戶級(jí)別的配置文件里配置一下(沒(méi)有可以創(chuàng)建):~/.bash_profile
- 編輯文件:
export PATH=/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources:/sbin/:$PATH,將工具的路徑追加到PATH變量中
一定要注意這里的冒號(hào)不要忘記?。?!- 命令行:
source ~/.bash_profile,執(zhí)行完要關(guān)閉重新打開(kāi)一個(gè)終端- 在新開(kāi)的終端里輸入:
which symbolicatecrash,配置好的話就會(huì)打印配置的路徑
工具的環(huán)境變量
終端輸入命令:export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer/"
打印該變量:echo $DEVELOPER_DIR
- 如果沒(méi)有配置環(huán)境變量的話,會(huì)報(bào)錯(cuò):
Error: "DEVELOPER_DIR" is not defined at xxxx ...- 這樣設(shè)置的環(huán)境變量只針對(duì)當(dāng)前會(huì)話(當(dāng)前終端窗口)有效
符號(hào)化
萬(wàn)事俱備開(kāi)干了,進(jìn)入「app-crash」目錄,當(dāng)前終端輸入命令:
symbolicatecrash ./crash文件 ./dSYM文件 > ./crash.log
等待一小會(huì)兒,分析結(jié)果就輸出到當(dāng)前目錄的crash.log文件里了,好好看看什么問(wèn)題吧...