记录还原crash log过程

本文详细介绍了如何还原iOS应用的crash log,包括找到symbolicatecrash工具,获取.dSYM文件,定位应用程序文件,以及导出和解析crash报告。在第一阶段中,通过Xcode和终端操作寻找必要的文件。若遇到问题,还有Plan B作为备选方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一阶段

第一步、找到symbolicatecrash文件(可以理解为还原工具)

1.路径为/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
这里写图片描述
2.如果用1的路径找不到,可以在终端输入find /Applications/Xcode.app -name symbolicatecrash -type f或者sudo find / -name "symbolicatecrash"找到所有Xcode版本下的symbolicatecrash

第二步、找到.dSYM文件(符号表,用来还原crash log为我们看得懂的文字)

1.在工程配置的 Build Settings -> Build Options -> Debug Information Format一栏中选择配置为"DWARF with dSYM File"
2.假设在模拟器debug,在/Users/君の名/Library/Developer/Xcode/DerivedData/君のApp/Build/Products/Debug-iphonesimulator/君のApp.app.dSYM 可以找到

ps.找到这步就可以直接plan B了。

第三步、找到应用程序文件
  1. (appName.app文件,把IPA文件后缀改为zip,然后解压,Payload目录下的appName.app文件), 这里的appName是你的应用程序的名称。
第四步、找到crash报告

1.Xcode->Device->选择你的手机->根据时间点找到crash log文件->右键导出

这里写图片描述

第二阶段

首先,将symbolicatecrash拷到系统目录下:
$ sudo cp /xx/xx/xx/symbolicatecrash /usr/local/bin

(……妈蛋我这里拷失败了,一直提示没有这个目录,找不到解决方案,尝试Plan B=。=)

命令使用crash文件,应用的dSYMcrash文件中崩溃地址对应的方法符号表, 在处理之前,请依然将“.app“, “.dSYM”和 ".crash"文件放到同一个目录下(同时命令行也切换过去),然后执行以下命令:

$ export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

$ ./symbolicatecrash Test.crash Test.app.dSYM/ > crash.log

Plan B

切换目录到 Test.app.dSYM/Contents/Resources/DWARF/
目录下面还有一个Test文件
在终端输入
$ atos -o Test -l 0x1000e8000 0x100ff6770 0x10170ffdc 0x10170bec0
(命令结构为atos [-o AppName.app/AppName] [-l loadAddress] [-arch architecture] //atos命令使用指定模块(-o参数) 模块加载地址(-l参数) 函数栈地址来解析出符号)
这里写图片描述
先输紫色的,然后输入蓝色的,蓝色的可以输一个也可以输多个(空格隔开)

然后就能看到还原。(看到这一幕会落泪的,不贴图,自己去体会)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值