dSYM 文件
什么是ipa
ipa是一個包含你應(yīng)用中所有資源的payload folder 的壓縮包盯腌。其中包含圖片腕够,plist文件舌劳,nib,可執(zhí)行文件客们,codesignig resources 等什么是xcarchive
xcarchive 包含你的app和dsym文件底挫。dsym 需要符號化你的崩潰日志脸侥,右鍵xcarchive- >show package contents 可以看到它的內(nèi)容什么是 dSYM 文件
Xcode編譯項目后睁枕,我們會看到一個同名的 dSYM 文件,dSYM 是保存 16 進制函數(shù)地0址映射信息的中轉(zhuǎn)文件注簿,我們調(diào)試的 symbols 都會包含在這個文件中跳仿,并且每次編譯項目的時候都會生成一個新的 dSYM 文件,位于 /Users/<用戶名>/Library/Developer/Xcode/Archives 目錄下妄辩,dSYM 文件有什么作用
當(dāng)我們軟件 release 模式打包或上線后眼耀,不會像我們在 Xcode 中那樣直觀的看到用崩潰的錯誤佩憾,這個時候我們就需要分析 crash report 文件了潭辈,iOS 設(shè)備中會有日志文件保存我們每個應(yīng)用出錯的函數(shù)內(nèi)存地址把敢,通過 Xcode 的 Organizer 可以將 iOS 設(shè)備中的 DeviceLog 導(dǎo)出成 crash 文件谅辣,這個時候我們就可以通過出錯的函數(shù)地址去查詢 dSYM 文件中程序?qū)?yīng)的函數(shù)名和文件名桑阶。大前提是我們需要有軟件版本對應(yīng)的 dSYM 文件,這也是為什么我們很有必要保存每個發(fā)布版本的 Archives 文件了割择。如何將文件一一對應(yīng)
每一個 xx.app 和 xx.app.dSYM 文件都有對應(yīng)的 UUID萎河,crash 文件也有自己的 UUID,只要這三個文件的 UUID 一致玛歌,我們就可以通過他們解析出正確的錯誤函數(shù)信息了支子。每個.dSYM 文件都對應(yīng)幾種CPU類型(arm7或者arm64达舒,根據(jù)你所兼容的設(shè)備來定),對應(yīng)不同CPU類型也有不同UUID昨登。
1.查看 xx.app 文件的 UUID塔猾,terminal 中輸入命令 :
dwarfdump --uuid xx.app/xx (xx代表你的項目名)
2.查看 xx.app.dSYM 文件的 UUID 丈甸,在 terminal 中輸入命令:
dwarfdump --uuid xx.app.dSYM
3.crash 文件內(nèi)第一行 Incident Identifier 就是該 crash 文件的 UUID尿褪。
命令行操作查看 (失效)
dwarfdump --arch=armv7 --lookup 奔潰內(nèi)存地址 dSYM的絕對路徑
友盟提供方法
- 下載工具
- 將工具和友盟上下載的csv文件和工具放在同一目錄下
- 在csv文件和工具的目錄下執(zhí)行 命令行 ./umcrashtool csv文件的絕對路徑