blogger

skytoup's blog

分享经验, 共同进步; RSS: http://blog.skytoup.com/feed

文章44

分类0

评论0

dsymutil程序调试符号帮助工具

dsymutil程序调试符号帮助工具

简介

操作归档的DWARF调试符号文件

场景一

打包有开启bitcode, 上传时没有勾选上传符号文件
结果iTunes后台处理完安装包后, 不会有下载dSYM文件, 导致该安装包发生的闪退日志无法还原符号, 只能看到一堆地址。

upload

解决方法

  1. 找到对应打包的的***.xcarchive归档文件, 点击右键选择查看包内容(Show Package Contents), 看到里面有两个符号表相关的文件夹, 分别是BCSymbbolMapsdSYMs

    • 虽然这里有dSYMs, 但是是隐藏了部分符号的, 直接使用会导致还原的堆栈信息显示很多hidden符号。
  2. 打开终端并切换当前工作目录到你的***.xcarchive(即cd /....../***.xcarchive), 再输入命令dsymutil --symbol-map BCSymbolMaps dSYMs/*, 即可把BCSymbolMaps内的符号信息更新到dSYMs目录下的对应文件

场景2

在开发周期内, 打的一些测试包没有上传符号文件, 后来这个安装包发生闪退的情况, 想还原堆栈时发现该打包的相关文件已经被清理。

或者最近看到有些开发者说buglyUMeng的线上闪退堆栈无法还原, 而且上传了对应的dSYM, 可以先尝试到iTunes后台下载对应包dSYM上传试试, 还是不行可以往下看试试。

解决方法

  1. 获取发生闪退的ipa

    • 已上线

      • 打包后归档的文件里面, 有一个***.ipa的文件
      • 越狱设备安装该线上包后, 进行脱壳提取
    • 日常开发测试(上传到类似firpgyer的网址)

      • 打包后归档的文件里面, 有一个***.ipa的文件
      • 到对应地方下载安装的***.ipa
  2. 解压***.ipa, 对app的主二进制文件(Payload/***.app/***)使用restore-symbol(https://github.com/tobefuturer/restore-symbol)进行部分被裁的符号表还原

  3. 终端执行命令dsymutil {替换为上一步已还原符号的二进制文件路径} -o {替换为dSYMs输出的目录路径}

    • 例如dsymutil testBin -o ./dSYMs

参考链接

评论(0)

© 2020  skytoup's blog  · 由 Typecho 强力驱动
  Design by 往记