我們的應(yīng)用通常充斥著崩潰,為了方便尋找導(dǎo)致崩潰的原因,蘋果為我們提供了崩潰報(bào)告,每個(gè)安裝了應(yīng)用的手機(jī),在崩潰時(shí)都會(huì)產(chǎn)生一個(gè)報(bào)告,我們可以利用合格報(bào)告推斷出導(dǎo)致崩潰的原因。
我們可以用Xcode通過以下方式獲取崩潰報(bào)告:
1、手機(jī)的所有崩潰日志:Xcode->Window->Devices and Simulators->View Device Logs
2、針對(duì)發(fā)布App Store的應(yīng)用:Xcode->Window->Organizer->Crash,需要用戶同意發(fā)送錯(cuò)誤報(bào)告給蘋果開發(fā)者才可以看到這些Crash報(bào)告,而對(duì)于TestFlight則默認(rèn)支持這個(gè)。
3、App自己收集的crash
一、在桌面創(chuàng)建一個(gè)crash文件夾
我們打了release包后,會(huì)生成一個(gè)二進(jìn)制文件,調(diào)試符號(hào)會(huì)存儲(chǔ)在dsym文件中,我們要做的就是將dsym文件下載下來(lái)。有以下幾個(gè)方式獲取dsym文件。
1.Xcoe-Window-Organize找到Archives找到App-右擊-Show in Finder
2.復(fù)制.app和.app.dSYM到crash夾文件:右擊..xcarchive文件-顯示包內(nèi)容
二、首先找到symbolicatecrash工具存放的地址1.打開終端輸入以下命令:find /Applications/Xcode.app -name symbolicatecrash -type f你會(huì)找到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/./symbolicatecrash
2.用命令將symbolicatecrash拷貝到桌面的crash文件夾里面,與.app和.app.dSYM放一起cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /Users/angel/Desktop/crash
3.將Crash文件也拷到當(dāng)前文件夾里面
三、執(zhí)行symbolicatecrash1.打開終端用命令切換到桌面的crash目錄下:cd /Users/你的電腦名稱/Desktop/crash
2.執(zhí)行命令./symbolicatecrash /Users/angelseahappiness/Desktop/crash/Control_2014-01-13-111838_Lynns-iPad3.crash /Users/angel/Desktop/crash/Control.app.dSYM > Control_symbol.crash這時(shí)候終端有可能會(huì)出現(xiàn):Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60.3.輸入命令:export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
4.再執(zhí)行./symbolicatecrash /Users/angelseahappiness/Desktop/crash/Control_2014-01-13-111838_Lynns-iPad3.crash /Users/angel/Desktop/crash/Control.app.dSYM > Control_symbol.crash這時(shí)候終端將會(huì)進(jìn)行處理了
5.將終端完成以后,在crash文件夾里面會(huì)多出一個(gè)文件Control_symbol.crash:這個(gè)就是最終的文件,可以查看bug所在的