iOS Crash符号化

Crash符号化

通过Mac自带的命令行工具解析Crash文件需要具备三个文件

symbolicatecrash

Xcode自带的崩溃分析工具,使用这个工具可以更精确的定位崩溃所在的位置,将0x开头的地址替换为响应的代码和具体行数。

获取symbolicatecrash工具方法,
1 通过find命令查询symbolicatecrash所在的目录

find /Applications/Xcode.app -name symbolicatecrash -type f

findSymbolicatecrash.png

2 获取DVTFoundation.frameworksymbolicatecrash

cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash ~/Documents/symbolicatecrash

crash日志

通过Xcode获取到崩溃日志,方法是从Xcode->Window->Devices View Device Logs中导出.crash文件到电脑上

dSYM文件

Xcode编译项目后,会生成一个同名的 dSYM 文件。dSYM 是保存 16 进制函数地址映射信息的文件,每次编译项目的时候都会生成一个新的 dSYM 文件。
iOS 设备中会有日志文件保存每个应用出错的函数内存地址,通过 Xcode 的 Organizer 可以将 iOS 设备中的 DeviceLog 导出成 crash 文件,可以通过出错的函数地址去查询 dSYM 文件中程序对应的函数名和文件名

解析

cd ~/Documents/symbolicatecrash
./symbolicatecrash XX.crash  XX.app.dSYM > result.crash

如果报错


errorSymbolicatecrash.png

则导入下Xcode目录

export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

然后重新 输入命令

./symbolicatecrash XX.crash   localPath/XX.app.dSYM > localPath/result.crash

这样就看到一个名字result.crash 已经符号化的文件了.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容