---- 用一下兩種方式比較好用
使用友盟、蒲公英等第三方崩潰統(tǒng)計工具獲取的信息可以用如下方式解析iOS 友盟第三方崩潰統(tǒng)計的解析-dSYM
已上線的APP鞋既,現(xiàn)在使用Xcode自帶的崩潰收集工具非常好用贮配。Window -- Organizer -- Crashes
今天審核AppStore被拒谍倦,說是有crash錯誤,并給了.crash文件牧嫉。但是真機調試模式下沒有崩潰,但是在AdHoc的版本下會崩潰减途,至今不知道為什么酣藻。所以我現(xiàn)在想到的只能通過.crash尋找崩潰咯。??
經過一番折騰鳍置,找到了問題(一個粗心造成的問題辽剧,還是不知道為何真機調試不會出現(xiàn)這問題)。故現(xiàn)在想整理一個詳細的筆記:
崩潰分析方式:命令行解析Crash文件
通過Mac自帶的命令行工具解析Crash文件需要具備三個文件
- symbolicatecrash税产,Xcode自帶的崩潰分析工具怕轿,使用這個工具可以更精確的定位崩潰所在的位置,將0x開頭的地址替換為響應的代碼和具體行數(shù)辟拷。
- 我們打包時產生的dSYM文件撞羽。
- 崩潰時產生的Crash文件。
1衫冻、獲取.crash文件
獲取崩潰信息方式:
- 使用友盟诀紊、蒲公英等第三方崩潰統(tǒng)計工具。->iOS 友盟第三方崩潰統(tǒng)計的解析-dSYM
- 自己實現(xiàn)應用內崩潰收集隅俘,并上傳服務器邻奠。
- Xcode-Devices中直接查看某個設備的崩潰信息。
- 使用蘋果提供的Crash崩潰收集服務为居。
這篇文章先只用第四個方式-審核被拒給我的.crash文件碌宴,其他方式以后討論。
2蒙畴、獲取 .app 和 .app.dSYM 文件
2.1贰镣、步驟:
1、Xcode-Window-Organize找到要檢查的對應Archives找到App-右擊-Show in Finder
2膳凝、右擊 .xcarchive 文件-顯示包內容
3八孝、分別復制dSYMs文件夾下的 **.app.dSYM 文件和 Products->Applications文件夾下的 app文件放入 .crash 文件所在的crash文件夾中(文件夾自己建的)。
2.2鸠项、dSYM 符號集介紹:
- 符號集是我們對ipa文件進行打包之后干跛,和.app文件同級的后綴名為.dSYM的文件,這個文件必須使用Xcode進行打包才有祟绊。
- 每一個.dSYM文件都有一個UUID楼入,和.app文件中的UUID對應哥捕,代表著是一個應用。而.dSYM文件中每一條崩潰信息也有一個單獨的UUID嘉熊,用來和程序的UUID進行校對遥赚。
- 我們如果不使用.dSYM文件獲取到的崩潰信息都是不準確的。
- 符號集中存儲著文件名阐肤、方法名凫佛、行號的信息,是和可執(zhí)行文件的16進制函數(shù)地址對應的孕惜,通過分析崩潰的.Crash文件可以準確知道具體的崩潰信息愧薛。
當程序崩潰的時候,我們可以獲得到崩潰的錯誤堆棧衫画,但是這個錯誤堆棧都是0x開頭的16進制地址毫炉,需要我們使用Xcode自帶的symbolicatecrash工具來將.Crash和.dSYM文件進行符號化,就可以得到詳細崩潰的信息削罩。
3瞄勾、獲取symbolicatecrash工具
1、打開終端輸入以下命令:
find /Applications/Xcode.app -name symbolicatecrash -type f
我找到的是:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
2弥激、用命令將symbolicatecrash拷貝到桌面的crash文件夾里面进陡,與.app和.app.dSYM放一起
cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/***/Desktop/crash
4、開始命令行解析Crash文件
1微服、打開終端用命令切換到桌面的crash目錄下:
cd /Users/***/Desktop/crash
2四濒、執(zhí)行命令
./symbolicatecrash /Users/***/Desktop/crash/*.crash /Users/***/Desktop/crash/*.app.dSYM > jieguo.crash
2.1、 如果上面命令不成功职辨,需要使用下面命令設置一下導出的環(huán)境變量盗蟆,然后重復上面解析的操作。
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
3舒裤、解析完成后會生成一個新的.Crash文件喳资,這個文件中就是崩潰詳細信息。