符号化iOS日志分3个步骤
- 导出DEVELOPER_DIR环境变量
- 找出闪退日志对应的dSYM文件
- 通过 symbolicatecrash xcode自动工具解析日志
当有多个日志需要解析时,用shell脚本时最合适的,减少繁琐的事情
#!/bin/bash
dSymPath=$1;
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer";
# 提取dSYM文件的UUID
dSymUuid=$(dwarfdump --uuid $dSymPath)
dSymUuid=${dSymUuid:5:37}
dSymUuid=$(echo $dSymUuid|tr [a-z] [A-Z]);
function symbolCrash() {
#提取闪退日志头部信息
text=$(grep -n 'slice_uuid=*' $1)
#提取uuid
ipsUuid=${text#*slice_uuid}
#截取uuid字符串
ipsUuid=${ipsUuid:3:36}
ipsUuid=$(echo $ipsUuid | tr [a-z] [A-Z]);
if [[ $dSymUuid != $ipsUuid ]]; then
echo 'dSYM UUID:'$dSymUuid;
echo 'ips UUID:'$ipsUuid;
echo 'ips : ' $1;
echo 'uuid 不一致,无法符号化ips';
echo '';
return;
fi
outPath=$1.out.crash;
./symbolicatecrash $1 $2 > ${outPath};
echo 'ips: ' $1;
echo 'out: ' ${outPath};
echo '';
}
for file in $(ls *.ips); do
symbolCrash $file $dSymPath
done
运行方式:
1、将所有ips、dSYM、symbolicatecrash 文件放在同一目录
2、运行时需要传入相应的dSYM文件
./analysis.sh app.dSYM
result.png











网友评论