開發(fā)過程中,難免會遇到Bug。
遇到Bug,怎么辦?
如果在測試階段,我們還可以直接Debug;
如果APP已經(jīng)上架呢?
還好,蘋果有日志,而且真機的日志文件能夠上傳的App Store,供開發(fā)者下載。也可以將閃退日志上傳到第三方平臺,比如騰訊Bugly。
但是呢!
1、從App Store下載下來的crash文件都是二進制內(nèi)存地址,這個很不方便閱讀。
2、騰訊Bugly有時候也需要上傳dSYM文件才能符號化,有時候符號化還會出現(xiàn)異常。
所以另外一個方法
找到閃退地址,通過xcrun atos明亮直接本地查看閃退位置,是一個比較方便可行的辦法。
準備工作
1、crash文件或騰訊Bugly上報的閃退日志
2、dSYM文件
3、確保閃退日志和dSYM文件UUID是配對的。
通過命令查看UUID
```
xcrun dwarfdump --uuid <dSYM文件>
```
通過符號表文件查看UUID
符號表文件的UUID與dSYM文件的UUID是一致的,因此可以通過符號表工具生成的符號表文件來查看dSYM文件的UUID:
生成符號表文件(.zip) ---> 解壓符號表文件(.symbol) ---> 使用文本編輯器打開符號表文件

其中符號表文件的“UUID”信息即Debug SO文件的UUID,亦是符號表文件的UUID,如果文件較大,建議使用“Sublime Text”等文本編輯器來打開符號表文件。
開始查找
1、在crash文件中,找到閃退位置的地址及模塊地址

閃退信息
2、運行atos工具
xcrun atos -o xxx.app.dSYM/Contents/Resources/DWARF/xxx -l 模塊地址 閃退地址
xxx代碼dSYM文件名稱