Xcode7中你一定要知道的炸裂調(diào)試神技

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í)間)。

organizer窗口

可以在左側(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)鏈接

what's new in Xcode

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容