别用symbolicatecrash来解析crash Log了
今天突然發(fā)現(xiàn)了一個(gè)解析iOS crash log的好方法,忍不住來分享一下。
相信每個(gè)做iOS開發(fā)的TX都應(yīng)該不會(huì)對(duì)symbolicatecrash陌生,我們第一次遇到真機(jī)上產(chǎn)生的崩潰日志時(shí),在網(wǎng)上搜到的大部分教程都告訴我們說要用symbolicatecrash來解析crash log,我信了,所以相當(dāng)長一段時(shí)間內(nèi),我都是用這個(gè)工具來解析crash log的。
每次都去敲命令來解析crash log本身就是一件很蛋疼的事情,但這還不是麻煩的,最麻煩的是用symbolicatecrash還經(jīng)常遇到問題:怎么crash log又解析失敗了?怎么批量解析crash log?
問題出在方法上,實(shí)際上我們完全用不著symbolicatecrash的,因?yàn)閄code中自帶的organizer就是很好的解析crash log工具了。
舉個(gè)例子,如果我們的應(yīng)用是在自己的機(jī)器上編譯生成的,把應(yīng)用裝在真機(jī)上如果有崩潰產(chǎn)生,把真機(jī)通過數(shù)據(jù)線連接到Mac電腦上,打開Xcode菜單上的Window——Organizer,找到設(shè)備的device logs項(xiàng)中的crash log,稍等片刻,你就會(huì)發(fā)現(xiàn)這里的crash log已經(jīng)被自動(dòng)解析過了(大部分情況會(huì)自動(dòng)解析,如果不行請(qǐng)右鍵點(diǎn)擊選擇Re-Sysbomlicate)。
但是如果應(yīng)用不是在自己的編譯上生成的,你會(huì)發(fā)現(xiàn)organizer不會(huì)自動(dòng)解析crash log(除了系統(tǒng)函數(shù))。怎么在這種情況下也讓organizer也能自動(dòng)解析crash log呢?
其實(shí)之前的organizer之所以能自動(dòng)解析你設(shè)備上的crash log,是因?yàn)樗芨鶕?jù)spotlight的索引來找到對(duì)應(yīng)的.app和dSYM文件,對(duì)于這一點(diǎn),我的猜測是在自己的Mac電腦上編譯生成應(yīng)用時(shí),系統(tǒng)自動(dòng)對(duì)其進(jìn)行了索引。這個(gè)索引應(yīng)該是根據(jù)app uuid來索引的。這個(gè)uuid可以執(zhí)行下面的命令得到:
dwarfdump —uuid YourApp.app/YourApp?
dwarfdump —uuid YourApp.app.dSYM
如果要能解析出crash log,crash log中攜帶的uuid與dSYM文件的uuid必須與app uuid一致。
既然spotlight能自動(dòng)進(jìn)行索引,那是不是也可以手動(dòng)進(jìn)行索引呢?答案是能,這正是自動(dòng)解析的關(guān)鍵。手動(dòng)索引的命令是mdimport。比如,把iOS應(yīng)用的.app和.dSYM文件放到一個(gè)文件夾中,執(zhí)行命令mdimport foldername就可以。命令執(zhí)行完成后再用剛才的organizer去查看crash log,你會(huì)發(fā)現(xiàn)也能自動(dòng)解析了。
這意味著什么呢?意味著你把應(yīng)用所有版本的.app和.dSYM文件放入一個(gè)專門的文件夾中,只要mdimpor這個(gè)文件夾,以后的organizer就能自動(dòng)解析出你所有的crash log。
好處不僅僅是這一點(diǎn)。organizer還有一個(gè)import功能,借助這個(gè)功能,我們可以把其它Mac電腦上的crash log導(dǎo)入到自己電腦中的organizer,然后就可以自動(dòng)解析。更好的是,用這個(gè)功能可以批量導(dǎo)入收集到的crash log,然后我們就可以批量解析所有的crash log。
比起用symbolicatecrash,這種方法簡便了許多,從現(xiàn)在起,你可以拋棄symbolicatecrash了。但其實(shí)這還不是最好的方法,目前先進(jìn)的方法是用crash report管理系統(tǒng)來管理所有的crash,比如使用QuincyKit, Crashlytics, Flurry等來進(jìn)行管理,有時(shí)間自己也研究研究。
轉(zhuǎn)載于:https://www.cnblogs.com/max5945/p/3663966.html
總結(jié)
以上是生活随笔為你收集整理的别用symbolicatecrash来解析crash Log了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android性能测试用例
- 下一篇: 点云数据特性分析