引導(dǎo):
- 如何獲取.ips文件
2.如何獲取symbolicatecrash
3.解析前的準(zhǔn)備工作
4.如何將.ips轉(zhuǎn)為.crash文件
5.如何使用symbolicatecrash解析.crash文件
6.異常錯(cuò)誤處理
1.如何獲取.ips文件?
在 iOS 中立润,你可以通過幾種方式找到應(yīng)用程序的 .ips 文件钢悲,具體取決于你是在開發(fā)過程中還是從用戶設(shè)備上獲取崩潰日志务傲。
在開發(fā)過程中
1). 在 Xcode 中查看:如果你在 Xcode 中運(yùn)行應(yīng)用程序時(shí)發(fā)生崩潰履羞,可以在 Xcode 的導(dǎo)航器中查看和導(dǎo)出崩潰日志。在 Navigator 面板中展開 "Devices and Simulators"茂契,選擇連接的設(shè)備蝶桶,點(diǎn)擊“Open Recent Logs”,此時(shí)會(huì)進(jìn)入 "Device Logs" 掉冶,找到項(xiàng)目相關(guān)的崩潰日志真竖。
在設(shè)備的 Console App 中查看:在 macOS 的 Console 應(yīng)用程序中,你可以連接設(shè)備并查看設(shè)備的系統(tǒng)日志郭蕉,包括應(yīng)用程序的崩潰日志疼邀。
2). 從用戶設(shè)備上獲取
使用設(shè)備的崩潰日志:如果用戶在應(yīng)用程序崩潰時(shí)選擇了“發(fā)送報(bào)告”或“不發(fā)送”選項(xiàng)喂江,你可能會(huì)收到一個(gè)帶有 .ips 擴(kuò)展的崩潰日志文件召锈。用戶通常可以通過設(shè)備設(shè)置中的“隱私”->“分析與改進(jìn)”->“分析數(shù)據(jù)”找到获询,一般app的崩潰日志名為“項(xiàng)目名xxx-發(fā)生時(shí)間.ips”
從 iTunes 或 Finder 備份中提日撬辍:如果用戶同步設(shè)備或使用 iCloud 進(jìn)行備份,你可能會(huì)在 iTunes 或 Finder 備份中找到崩潰日志文件吉嚣。
將.ips文件復(fù)制到新建的文件夾中.
2.如何獲取symbolicatecrash?
1).打開終端梢薪,輸入如下指令
find /Applications/Xcode.app -name symbolicatecrash -type f
終端會(huì)輸出symbolicatecrash所在路徑,如圖所示
2). 復(fù)制地址進(jìn)入到Resources文件夾下
cd /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/
3).打開文件夾尝哆,然后找到并找到symbolicatecrash
open .
4).將Resources文件下的symbolicatecrash復(fù)制到步驟1新建的某個(gè)文件夾下(注:為了方便操作秉撇,最好將symbolicatecrash放到新文件夾下,后續(xù)在此文件夾還會(huì)放入.ips文件和dsyms中的xxx.app.dSYM)
3.解析前的準(zhǔn)備工作
目前已存放了.ips崩潰日志和symbolicatecrash秋泄。需要解析日志琐馆,還需要重要的dSYM,也就是符號(hào)表恒序。
那么如何獲取“項(xiàng)目名xxx.app.dSYM”呢瘦麸?
打開Xcode,導(dǎo)航欄選擇“Window” -> “Organizer”歧胁,在“Archives”中找到崩潰的app版本滋饲,鼠標(biāo)右擊厉碟,選擇“Show in Finder”,選擇"xxx.xcarchive"屠缭,鼠標(biāo)右擊箍鼓,選擇“顯示包內(nèi)容”,打開“dSYMS”呵曹,找到"項(xiàng)目名xxx.app.dSYM"文件袄秩,復(fù)制到文件夾中(.ips文件和dsyms中的xxx.app.dSYM 同一個(gè)文件夾).
4.如何將.ips轉(zhuǎn)為.crash文件
因?yàn)樘O果在Xcode13.3已經(jīng)廢棄了.crash文件,而symbolicatecrash只能解析.crash逢并,所以需要利用"AppleCrashScripts"將.ips轉(zhuǎn)換為.crash之剧。
1). 下載AppleCrashScripts; https://github.com/tomieq/AppleCrashScripts
2). 進(jìn)入下載的AppleCrashScripts-master文件夾,執(zhí)行如下代碼
cd AppleCrashScripts-master
swift convertFromJSON.swift -i xxx.ips -o xxx.crash
代碼解釋:
"/xxx/xxx.crash"為步驟4轉(zhuǎn)換后的.crash文件的絕對(duì)路徑
"/xxx.app.dSYM" 為步驟3獲取的符號(hào)表文件路徑
"crash.log"為解析后的崩潰日志名(文件名和后綴可以自定義.log砍聊,.txt都行)
此時(shí)如果沒有報(bào)錯(cuò)的話背稼,crash.log就可以看到帶崩潰的具體函數(shù)和崩潰在哪一行了
6.異常錯(cuò)誤處理
錯(cuò)誤1:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
解決方案:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
再次執(zhí)行:
./symbolicatecrash /xxx/xxx.crash /xxx.app.dSYM > crash.log
好的效率,在于好的習(xí)慣!!!!