根据ips文件信息定位问题
根据ips文件信息定位问题:
一、命令行方式:
1、下载对应版本号和build号的dsym.zip文件
2、解压并显示包内容后将DWARF文件下的文件copy到要执行命令的目录
3、输入下面的命令,替换成自己的工程名,首行地址和偏移地址。(首行地址在崩溃日志最下方的有工程标识行的地址)
xcrun atos -arch arm64 -o [APP名称] -l [基地址] [函数地址]
例子:
xcrun atos -arch arm64 -o XesApp-Test -l 0x100a80000 0x0000000101687ec4
二、symbolicatecrash工具批量定位
1、symbolicatecrash文件copy到一个文件夹里
路径:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
2、将.dSYM文件copy到同一个文件夹里
(1).ipa路径:Xcode>Window>Organizer>Archives>xxx>Show in Finder>xxx.xcarchive>>显示包内容>xxx.app.dSYM
(2).framework路径:xxx.project>Products>xxx.framework>Show in Finder>Release-iphoneos>xxx.dSYM
3、获取crash文件或ips文件
本地路径:Xcode>Window>Devices and Simulators>选择已连接的真机>View Device Logs>xxxApp>右键导出.crash文件
客户端路径:设置>隐私>分析与改进>IPS文件
4、解析.crash/.IPS文件
终端命令:./symbolicatecrash xxx.crash xxx.dSYM > crash.log
5、报错
指定Xcode环境变量:export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"