Xcode7中你一定不知道的除錯神技

2021-07-08 17:52:25 字數 1880 閱讀 2477

在公升級ios9後,蘋果會詢問使用者是否同意收集應用崩潰報告。這樣在itunes connect的後台統計中就可以看到一些收集到的資料(通常會有相當一部分使用者不同意,所以只是部分資料)。

ad:

xcode7中蘋果為我們增加了兩個重要的debug相關功能。了解之後覺得非常實用,介紹給大家。

1.address sanitizer: 媽媽再也不用擔心 exc_bad_access?

exc_bad_access一直是很多開發者的噩夢,因為這個錯誤很不直觀,出現後往往要花很長時間才能定位到錯誤。蘋果這次帶來了革命性的提公升。

在專案的scheme中diagnostics下,選中enable address sanitizer(注意選中後xcode會重新編譯整個專案)。

這樣設定後,如果再出現類似的錯誤會有更詳細的錯誤資訊提示,甚至會有記憶體使用情況的展示。

2.發布後的crash跟蹤,輕鬆定位崩潰**

在公升級ios9後,蘋果會詢問使用者是否同意收集應用崩潰報告。這樣在itunes connect的後台統計中就可以看到一些收集到的資料(通常會有相當一部分使用者不同意,所以只是部分資料)。

2.1檢視崩潰統計資訊

進入分析頁面後,tab中選擇「指標」

然後在左側的選單中選擇「崩潰」

這樣就可以看到蘋果收集到的崩潰統計,一定要注意這裡只是一部分的資料,舉例來說如果你看到的崩潰是10次,但是可能蘋果只收集了20%的使用者資訊。所以你可以大概估計應該是10*5=50次崩潰。

2.2在xcode中檢視具體崩潰資訊

organizer視窗

可以在左側選擇你要檢視崩潰資訊的發布版本

在崩潰資訊這一欄蘋果會按照崩潰數量排序,將崩潰數量最多的排在最前。右側的詳細資訊會顯示是崩潰時的呼叫堆疊,可以看到是哪行**導致的崩潰。

選中要解決的崩潰後,可以在視窗右側選擇open in project。

神奇的事情發生了!!!在開啟的專案中,會直接定位到崩潰的那行**。這大大提高了除錯的效率!我已經的迫不及待要和開發安卓的同事分享這份喜悅了。

注意!注意!

因為之前的專案發布時沒有用xcode7打包,所以猜測符號表可能沒有上傳到蘋果伺服器,所以以前的專案可能不能直接顯示是哪行**,而是顯示呼叫時出錯的記憶體位址。不過下個版本你用xcode發布後就可以正常看到啦。

在解決完這個crash後可以標記為已經解決。有兩個地方可以標記。

Xcode7中你一定要知道的炸裂除錯神技

xcode7中蘋果為我們增加了兩個重要的debug相關功能。了解之後覺得非常實用,介紹給大家。1.address sanitizer 媽媽再也不用擔心 exc bad access?exc bad access一直是很多開發者的噩夢,因為這個錯誤很不直觀,出現後往往要花很長時間才能定位到錯誤。蘋果這...

Xcode7中你一定要知道的炸裂除錯神技

xcode7中蘋果為我們增加了兩個重要的debug相關功能。了解之後覺得非常實用,介紹給大家。1.address sanitizer 媽媽再也不用擔心 exc bad access?exc bad access一直是很多開發者的噩夢,因為這個錯誤很不直觀,出現後往往要花很長時間才能定位到錯誤。蘋果這...

Xcode7中你一定要知道的炸裂除錯神技

xcode7中蘋果為我們增加了兩個重要的debug相關功能。了解之後覺得非常實用,介紹給大家。exc bad access一直是很多開發者的噩夢,因為這個錯誤很不直觀,出現後往往要花很長時間才能定位到錯誤。蘋果這次帶來了革命性的提公升。在專案的scheme中diagnostics下,選中enable...