Xcode7中蘋(píng)果為我們?cè)黾恿藘蓚€(gè)重要的debug相關(guān)功能。了解之后覺(jué)得非常實(shí)用,介紹給大家。
1.Address Sanitizer: 媽媽再也不用擔(dān)心 EXC_BAD_ACCESS?
EXC_BAD_ACCESS一直是很多開(kāi)發(fā)者的噩夢(mèng),因?yàn)檫@個(gè)錯(cuò)誤很不直觀,出現(xiàn)后往往要花很長(zhǎng)時(shí)間才能定位到錯(cuò)誤。蘋(píng)果這次帶來(lái)了革命性的提升。
在項(xiàng)目的Scheme中Diagnostics下,選中enable address sanitizer(注意選中后Xcode會(huì)重新編譯整個(gè)項(xiàng)目)。

這樣設(shè)置后,如果再出現(xiàn)類(lèi)似的錯(cuò)誤會(huì)有更詳細(xì)的錯(cuò)誤信息提示,甚至?xí)袃?nèi)存使用情況的展示。

2.發(fā)布后的crash跟蹤,輕松定位崩潰代碼
在升級(jí)iOS9后,蘋(píng)果會(huì)詢(xún)問(wèn)用戶(hù)是否同意收集應(yīng)用崩潰報(bào)告。這樣在itunes connect的后臺(tái)統(tǒng)計(jì)中就可以看到一些收集到的數(shù)據(jù)(通常會(huì)有相當(dāng)一部分用戶(hù)不同意,所以只是部分?jǐn)?shù)據(jù))。
2.1查看崩潰統(tǒng)計(jì)信息
在connect后臺(tái)中選擇app分析

進(jìn)入分析頁(yè)面后,tab中選擇“指標(biāo)”

然后在左側(cè)的菜單中選擇“崩潰”

這樣就可以看到蘋(píng)果收集到的崩潰統(tǒng)計(jì),一定要注意這里只是一部分的數(shù)據(jù),舉例來(lái)說(shuō)如果你看到的崩潰是10次,但是可能蘋(píng)果只收集了20%的用戶(hù)信息。所以你可以大概估計(jì)應(yīng)該是10*5=50次崩潰。
2.2在Xcode中查看具體崩潰信息
在xcode中菜單的window下選擇organizer,在打開(kāi)的窗口中選擇Crashes,這樣X(jué)code會(huì)開(kāi)始下載相關(guān)的崩潰信息到本地中(網(wǎng)絡(luò)環(huán)境不好時(shí)可能要等待一些時(shí)間)。

可以在左側(cè)選擇你要查看崩潰信息的發(fā)布版本


在崩潰信息這一欄蘋(píng)果會(huì)按照崩潰數(shù)量排序,將崩潰數(shù)量最多的排在最前。右側(cè)的詳細(xì)信息會(huì)顯示是崩潰時(shí)的調(diào)用堆棧,可以看到是哪行代碼導(dǎo)致的崩潰。

選中要解決的崩潰后,可以在窗口右側(cè)選擇open in project。

神奇的事情發(fā)生了?。?!在打開(kāi)的項(xiàng)目中,會(huì)直接定位到崩潰的那行代碼。這大大提高了調(diào)試的效率!我已經(jīng)的迫不及待要和開(kāi)發(fā)安卓的同事分享這份喜悅了。
注意!注意!
因?yàn)橹暗捻?xiàng)目發(fā)布時(shí)沒(méi)有用xcode7打包,所以猜測(cè)符號(hào)表可能沒(méi)有上傳到蘋(píng)果服務(wù)器,所以以前的項(xiàng)目可能不能直接顯示是哪行代碼,而是顯示調(diào)用時(shí)出錯(cuò)的內(nèi)存地址。不過(guò)下個(gè)版本你用xcode發(fā)布后就可以正常看到啦。
在解決完這個(gè)crash后可以標(biāo)記為已經(jīng)解決。有兩個(gè)地方可以標(biāo)記。


所以沒(méi)有升級(jí)xcode7的同學(xué)趕緊升吧。O(∩_∩)O~
歡迎關(guān)注我的微博:@沒(méi)故事的卓同學(xué)
相關(guān)鏈接