美文网首页
丢失dSYM文件后,如何解析Crash日志

丢失dSYM文件后,如何解析Crash日志

作者: 大大东 | 来源:发表于2021-03-08 13:48 被阅读0次

如果之前打包的代码也找不到了,就不要往下看了

起因

版本上线后,bugly上发现存在较多crash,由于符号表被清理磁盘的定时任务给删掉了,无备份也未上传bugly,所以只能看到未解码的堆栈(忽然发现竟然bugly无法下载到原始的crash.log文件)

解决

正常解码步骤:

  1. 找到symbolicatecrash工具,拷贝到待使用的文件夹
    find /Applications/Xcode.app -name symbolicatecrash -type f
  2. Crash文件
    这里是从 XCode-Crashes 里拿出来的
  3. dSYM & app 文件
    注意两者的UUID需要一致, xcrun dwarfdump --uuid xxx(dSYM / ipa 的路径)
    备注:根据uuid查找电脑中的DSYM文件mdfind 12345678-1234-1234-1234-1234-xxxx(UUID不包含‘-’也可以)
  4. 设置环境变量
    export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
  5. 解码 (网上好多都没写.app 反正不包含我解不出来)
    ./symbolicatecrash ./xxx.crash ./xxx.app.dSYM ./xxx.app > symbol.crash

关于dSYM网上也有人试验过是一致的,我未实验验证:
如果两次打包的代码&xcode完全一致,两次打包的UUID是一致的

  1. 回滚代码重新打包
    更换了打包电脑,所以UUID是不一致的
  2. 强行按照解码步骤解码
    会失败,由于UUID不同,会直接提示无符号表 No symbolic information found
  3. 修改 .crash 文件中的UUID为 新打出的包的UUID ,再次尝试解码,成功的符号化了crash日志


    image.png

后记

上述印证了,代码一致时,每次打包对应的dSYM,即使UUID不一致,真实的文件内容也基本一致,可以用来解码crash文件。
这个结论有些粗糙,我并未进行过多次的dSYM二进制比对,不过遇到dSYM丢失时,可以按照这种方式尝试一下~~~

相关文章

网友评论

      本文标题:丢失dSYM文件后,如何解析Crash日志

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