最近觸發(fā)了一些線上崩潰,沒有其他參考路徑乞娄,只有線上crash文件瞬逊,由于現(xià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
把這個文件復制到在桌面建立的crash文件中
cp /Applications/Xcode.app//Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/本機名/Desktop/crash/
.app.dYSM文件從打包的XXApp.xcarchive文件中獲取懈万;
準備好三個文件后拴清,運行命令行
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中