iOS崩溃日志符号化 & UUID获取

本文介绍了iOS应用崩溃日志符号化的概念、用途及其生成方式。符号表,即.dSYM文件,用于存储调试信息,便于定位线上崩溃问题。通过Xcode的Organizer、symbolicatecrash工具或atos命令,可以将崩溃日志中的函数地址转换为可读的函数名和行号。UUID用于匹配.dSYM和.app文件,确保正确符号化。文章还讲解了如何获取和使用UUID来解析崩溃日志。
摘要由CSDN通过智能技术生成

1. 符号表是什么?

符号表就是指在Xcode项目编译后,在编译生成的二进制文件.app的同级目录下生成的同名的.dSYM文件。
.dSYM文件其实是一个目录,在子目录中包含了一个16进制的保存函数地址映射信息的中转文件,所有Debug的symbols都在这个文件中(包括文件名、函数名、行号等),所以也称之为调试符号信息文件。
一般地,Xcode项目每次编译后,都会生成一个新的.dSYM文件。因此,App的每一个发布版本,都需要备份一个对应的.dSYM文件,以便后续调试定位问题。
注意:
项目每一次编译后,.app和.dSYM成对出现,并且二者有相同的UUID值,以标识是同一次编译的产物。
UUID值可以使用dwarfdump —uuid来检查:
$ dwarfdump --uuid XX.app.dSYM#获取.dsym文件的UUID,值可能包含armv7/arm64两组
$ dwarfdump --uuid XX.app/XX#获取.app文件的UUID,值可能包含armv7/arm64两组
那么,问题就来了!

2. 符号表有什么用?

在Xcode开发调试App时,一旦遇到崩溃问题,开发者可以直接使用Xcode的调试器定位分析。
但如果App发布上线,开发者不可能进行调试,只能通过分析系统记录的崩溃日志来定位问题,在这份崩溃日志文件中,会指出App出错的函数内存地址,而这些函数地址是可以在.dSYM文件中找到具体的文件名、函数名和行号信息的,这正是符号表的重要作用所在。
实际上,使用Xcode的Organizer查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值