1.Address Sanitizer: 媽媽不再用擔憂 EXC_BAD_ACCESS? xcode
EXC_BAD_ACCESS一直是不少開發者的噩夢,由於這個錯誤很不直觀,出現後每每要花很長時間才能定位到錯誤。蘋果此次帶來了革命性的提高。 服務器
在項目的Scheme中Diagnostics下,選中enable address sanitizer(注意選中後Xcode會從新編譯整個項目)。 網絡
這樣設置後,若是再出現相似的錯誤會有更詳細的錯誤信息提示,甚至會有內存使用狀況的展現。 app
2.發佈後的crash跟蹤,輕鬆定位崩潰代碼 spa
在升級iOS9後,蘋果會詢問用戶是否贊成收集應用崩潰報告。這樣在itunes connect的後臺統計中就能夠看到一些收集到的數據(一般會有至關一部分用戶不一樣意,因此只是部分數據)。 debug
2.1查看崩潰統計信息 3d
在connect後臺中選擇app分析 調試
進入分析頁面後,tab中選擇「指標」 code
而後在左側的菜單中選擇「崩潰」 排序
這樣就能夠看到蘋果收集到的崩潰統計,必定要注意這裏只是一部分的數據,舉例來講若是你看到的崩潰是10次,可是可能蘋果只收集了20%的用戶信息。因此你能夠大概估計應該是10*5=50次崩潰。
2.2在Xcode中查看具體崩潰信息
在xcode中菜單的window下選擇organizer,在打開的窗口中選擇Crashes,這樣Xcode會開始下載相關的崩潰信息到本地中(網絡環境很差時可能要等待一些時間)。
organizer窗口
能夠在左側選擇你要查看崩潰信息的發佈版本
在崩潰信息這一欄蘋果會按照崩潰數量排序,將崩潰數量最多的排在最前。右側的詳細信息會顯示是崩潰時的調用堆棧,能夠看到是哪行代碼致使的崩潰。
選中要解決的崩潰後,能夠在窗口右側選擇open in project。
神奇的事情發生了!!!在打開的項目中,會直接定位到崩潰的那行代碼。這大大提升了調試的效率!我已經的火燒眉毛要和開發安卓的同事分享這份喜悅了。
注意!注意!
由於以前的項目發佈時沒有用xcode7打包,因此猜想符號表可能沒有上傳到蘋果服務器,因此之前的項目可能不能直接顯示是哪行代碼,而是顯示調用時出錯的內存地址。不過下個版本你用xcode發佈後就能夠正常看到啦。
在解決完這個crash後能夠標記爲已經解決。有兩個地方能夠標記。