ios中dsYM

什么是dsYM?

        dSYM是保存16进制函数地址映射信息的中转文件,我们调试的symbols都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的dSYM文件,位于/Users/<用户名>/Library/Developer/Xcode/Archives目录下

dsYM文件有什么用?

        当我们软件release模式打包或上线后,不会像我们在Xcode中那样直观的看到用崩溃的错误,这个时候我们就需要分析crash report文件了,iOS设备中会有日志文件保存我们每个应用出错的函数内存地址,通过Xcode的Organizer可以将iOS设备中的DeviceLog导出成crash文件,这个时候我们就可以通过出错的函数地址去查询dSYM文件中程序对应的函数名和文件名。大前提是我们需要有软件版本对应的dSYM文件,这也是为什么我们很有必要保存每个发布版本的Archives文件了。

        每一个xx.app和xx.app.dSYM文件都有对应的UUID,crash文件也有自己的UUID,只要这三个文件的UUID一致,我们就可以通过他们解析出正确的错误函数信息了。


如何对比UUID是否一致?

1. 查看IPA包的UUID

    解压缩IPA包——进入Payload文件夹

右键——显示包内容


使用命令:dwarfdump --uuid xx.app/xx(xx代表你的项目名)

2. 查看archive包的UUID

Archives界面选择对应的包,右键Show in Finder


右键显示包内容——打开dsYMs文件夹

使用命令dwarfdump --uuid xxx.app.dSYM(xxx为你的项目名)

一些问题

1.企业打包xxx.app.dsYMUUIDipa包中的UUID总是不一致解决办法:XCode9.2 Archive时去掉Rebuild from Bitcode勾选

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文就捕获iOS Crash、Crash日志组成、Crash日志符号化、异常信息解读、常见的Crash五部分介绍。...
    xukuangbo_阅读 1,597评论 0 0
  • [这是第14篇] 序: iOS Crash问题是iOS开发中难以忽视的存在,本文就捕获iOS Crash、Cras...
    南华coder阅读 9,959评论 21 116
  • 什么是符号表? 符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示: <起始地址> <结束地址> ...
    深圳阳光阅读 12,257评论 28 5
  • 一、表现好就爱 “天天,去,把玩具收起来”。 孩子照着妈妈的指示把玩具收了。 “恩,乖,妈妈爱你,宝贝”。 二、表...
    2hz阅读 537评论 6 2
  • 作为一个大学专科生,每当大家讨论大学四年生涯,每到讨论高数,选修我就不得不逼迫自己我个他们不一样。大三了找工作=_...
    静好染时间阅读 199评论 0 0