如图下列3图所示:
QA同学发给你的, 也可能是apple审核人员发来的.
公司自己的崩溃日志收集系统
命令格式:
symbolicatecrash工具 .crash日志文件 .dSYM文件 > 输出结果文件.crash
例如:
配置环境变量DEVELOPER_DIR
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
没有配置的错误提示:
查找symbolicatecrash
执行命令:
我的路径如下:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
检查dSYM 文件 与 crash日志是否匹配
方法: 比对 uuid
获取dSYM uuid, 执行命令:
崩溃日志uuid查看:
<1>查找字段slice_uuid;
<2>如果没找到slice_uuid, 则查找Binary Images, 其后第一个连续长字符串即是.
dSYM与crash日志uuid一直, 则两者匹配.
查找CrashSymbolicator.py
执行命令:
我的路径:
/Applications/Xcode.app/Contents/SharedFrameworks/CoreSymbolicationDT.framework/Versions/A/Resources/CrashSymbolicator.py
CrashSymbolicator.py解析命令
sudo python3 /Applications/Xcode.app/Contents/SharedFrameworks/CoreSymbolicationDT.framework/Versions/A/Resources/CrashSymbolicator.py -d ./xxx.app.dSYM -o ./result.ips -p ./origin.ips
xcrun atos -o {executable} -arch {architecture} -l {loadAddress} {stackAddress}
打开崩溃日志文件,找到想要解析的内存地址, 如下图所示:
: 符号的栈地址
: 二进制加载地址
命令行举例:
= 代码段的起始地址 vmaddr
= 86xxxxx(偏移) + start address
通过 otool 命令获得 dSYM 的代码段起始地址
命令格式:
查找start address
在result_findAddress.text中
搜索下
后的地址即start address.
arm64 → arm64e问题
error tips:
atos cannot load symbols for the file /Users/usernamexxx/Library/Developer/Xcode/iOS DeviceSupport/16.0 (20A362) arm64e/Symbols/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore for architecture arm64.
Died at ./symbolicatecrash line 1207.
解决办法: .
参考链接:












