1.将崩溃的 crash.txt 拷贝到本地的文件夹中备用
2.打开终端输入指令:
find /Applications/Xcode.app -name symbolicatecrash -type f

得到所需要的 symbolicatecrash 工具
-
cp symbolicatecrash 到创建的崩溃文件里面
4.
ji
进入到图片的位置。archives找到打包的那个app(必须是打包ipa对应的app)。右击-Show in Finder 右击后显示包内容 复制ProjectName.app和ProjectName.app.dSYM到crash文件夹里image.png
5.校验 ProjectName.app、ProjectName.app.dSYM、crash.txt 的UUID是否一致
dwarfdump --uuid ProjectName.app/ProjectName
dwarfdump --uuid ProjectName.app.dSYM
image.png
- 终端输入
./symbolicatecrash /Users/XXX/Desktop/crach/crashLog.txt /Users/XXX/Desktop/crach/ProjectName.app.dSYM > crashLogEnd.crash
出现 Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69. 输入 export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
后再次输入
./symbolicatecrash /Users/XXX/Desktop/crach/crashLog.txt /Users/XXX/Desktop/crach/ProjectName.app.dSYM > crashLogEnd.crash
就可以查看崩溃信息了。
二, 有时候使用bugly也会出现如下问题,无法具体定位问题所在。

mywarfdump64.sh
#!/bin/sh
#用法
if (($# == 0));then
echo "Usage: mydwarfdump Offset address";
exit 0;
fi
#获取当前目录下的dsym文件;不存在则提示用户
#判断文件是否存在直接用if (( -e `find . -maxdepth 1 -name "*.dSYM“` ))
fileArray=$(find . -maxdepth 1 -name "*.dSYM");
if ((${#fileArray[@]} == 0)); then
echo "当前目录下无.dSYM文件";
exit 0;
fi
#默认当前目录下只有一个dsym文件;
dSYM=${fileArray[0]};
#echo $dSYM;
#搜索地址=偏移地址转换为16进制后加0x4000;//64位系统加100000000
searchAddress="0x"$(echo "ibase=10;obase=16;${1}+4294967296"|bc);
#echo $searchAddress;
#执行dwarfdump命令
dwarfdump --lookup $searchAddress $dSYM;
#退出
exit 0;


执行图片上面的命令就可以定位问题所在了。
网友评论