这里简单介绍下怎么通过atos命令来解析iOS/Mac 崩溃日志,适合拿到一份未经符号化的crash日志需要开发人员手动符号化的场景
注意:我们每次Archives一个包之后都会随之生成一个dSYM文件。每次发布版本的时候需要备份此版本的这个文件,方便以后的调试。
崩溃日志可以从xcode里打开Devices看到对应手机的一些崩溃信息,点击下图的View Device Logs就能看到崩溃日志。
获取dSYM文件在Archives里选中包,Show in Finder,显示包内容,dSYMs文件夹内有各个库的dSYM文件
如果项目archive之后没有生成dSYM文件,看看Target的Build Settings中Debug Information Format是不是DWARF with dSYM File。
(是一个应用版本的可略过)
控制台输入命令查看dSYM文的uuid:
1、使用 cd 命令进入包含 dSYM 文件的目录
2、输入以下命令并按回车键:
dwarfdump -u YourApp.app.dSYM | grep -o -E '([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})'
crash日志里搜索Binary Images 找到对应的库,下图红框<>内就是对应库的uuid
还是看第二步的Binary Images:处,上图标注的arm64
常用的命令就一个
atos -arch arm64/armv7 -o yourAppName.app.dSYM/ -l <load-address> <stack address>
在日志里搜索“crashed”找到crashed的Thread,使用对应包名的dSYM 文件(这里以TXLiteAVSDK_TRTC为例)使用atos命令去按行解析
这里在控制台输入以下命令
atos -arch arm64 -o dSYM文件存放路径/TXLiteAVSDK_TRTC_arm64.dSYM/ -l 0x1034a4000 0x000000010356d8a4
(红线部分是load address,蓝线部分是stack address)
希望能帮助到你~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。