iOS 線上crash分析(一)

最近觸發(fā)了一些線上崩潰,沒有其他參考路徑,只有線上crash文件,由于現(xiàn)在公司項目沒有接入第三方分析文件,所以還是要自己手動看一下,之前很少直接接觸這類文件,所以還是記錄一下

一、預(yù)先準(zhǔn)備

1、在桌面建立一個crash文件夾,存放相關(guān)文件;
2、將.crash文件,.app.dYSM文件,symbolicatecrash放入該文件夾;
symbolicatecrash獲取方法
打開終端,輸入
find /Applications/Xcode.app/ -name symbolicatecrash -type f
獲取到相關(guān)地址,最后一個就可以獲取到symbolicatecrash路徑
/Applications/Xcode.app//Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
把這個文件復(fù)制到在桌面建立的crash文件中
cp /Applications/Xcode.app//Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/本機名/Desktop/crash/

.app.dYSM文件從打包的XXApp.xcarchive文件中獲取;
準(zhǔn)備好三個文件后,運行命令行
cd /Users//本機名/Desktop/crash/
運行該語句
./symbolicatecrash ./.crash ./.app.dSYM > symbol.crash
我本次出現(xiàn)了Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.錯誤
使用下列命令行修改該錯誤
xcode-select -print-path
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/
修改完成后,再次運行
./symbolicatecrash ./.crash ./.app.dSYM > symbol.crash

最終在crash文件夾中會獲得一個新的symbol.crash文件,崩潰信息即可查看;

二、定位崩潰問題

從崩潰信息中,可以查找到崩潰地點在
[view.layer.sublayers makeObjectsPerformSelector:@selector(removeFromSuperlayer)];
原來用的方法是
view.layer.sublayers = nil;

但是這個問題只能定位到這里說圖層移除有問題,理論上removeFromSuperlayer是可用的,具體問題出在哪里,還是要進一步確定;

查了一些資料,但是還需要本身去做驗證,盲目說這個有問題也不太好;

參考資料:

Xcode自帶工具symbolicatecrash解析iOS Crash文件
iOS分析Crash文件
刪除所有CALayer的子圖層
關(guān)于sublayer Remove的時候的閃退問題
ios - 在調(diào)用removeFromSuperlayer之后的sublayers中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容