美文网首页
丢失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