美文网首页
Xcode 崩溃信息十六进制的转化可读

Xcode 崩溃信息十六进制的转化可读

作者: jemmy_xl | 来源:发表于2019-12-19 14:49 被阅读0次

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


image.png

得到所需要的 symbolicatecrash 工具

  1. 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
  2. 终端输入
    ./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也会出现如下问题,无法具体定位问题所在。


image.png

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;
image.png image.png

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

相关文章

网友评论

      本文标题:Xcode 崩溃信息十六进制的转化可读

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