美文网首页
iOS闪退日志符号化shell脚本

iOS闪退日志符号化shell脚本

作者: yellowzhou | 来源:发表于2018-11-19 17:27 被阅读0次

符号化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

相关文章

网友评论

      本文标题:iOS闪退日志符号化shell脚本

      本文链接:https://www.haomeiwen.com/subject/miuafqtx.html