概述
- 如何使用dSYM符号化crash日志。解析线上crash
- 1 获取未解析的crash日志。
- 2 获取dSYM文件
- 3 使用xcode的symbolicatecrash工具进行符号化
- 3.1 找到symbolicatecrash
- 3.2 将crash, dSYM,symbolicatecrash放置在同一个文件夹
- 3.3 执行命令,生成符号化的文件
- 4 常见问题
- 4.1 Error: “DEVELOPER_DIR” is not defined at ./symbolicatecrash
- 4.2 Warning: Unable to symbolicate from required binary: ~/Xcode/iOS DeviceSupport/13.6 (17G68) arm64e/Symbols/System/Library/Frameworks/CFNetwork.framework/CFNetwork
- 4.21 如何查看uuid
- dsym的uuid
- crash日志的uuid
- 4.21 如何查看uuid
1 获取未解析的crash日志。
iPhone连接mac,从Xcode->Window->Devices View Device Logs ,可以下载在此iPhone上当时crash的日志。
2 获取dSYM文件
每次编译项目,生成一个与APP同名的dSYM文件。
不同的公司,用不同的方式打包。如果自动化流程做得好,通常是有集群的,找到相应的dsym文件下载即可。命名通常是XXX.app.dSYM
3 使用xcode的symbolicatecrash工具进行符号化
3.1 找到symbolicatecrash
打开终端输入命令:
find /Applications/Xcode.app -name symbolicatecrash -type f
我的mac出现的结果:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/iOSSupport/Library/PrivateFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
mac, 手机,模拟器等不同的版本。如果是iPhone真机就选择最后一个。
打开路径:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/
将symbolicatecrash复制出来。
3.2 将crash, dSYM,symbolicatecrash放置在同一个文件夹
比如我放置在了
/Users/kqy/Documents/crashProblem1211
3.3 执行命令,生成符号化的文件
./symbolicatecrash my.crash my1211.app.dSYM > result.crash
其中my.crash是crash日志;my1211.app.dSYM是dSYM文件。
所有命令汇聚一张图
4 常见问题
4.1 Error: “DEVELOPER_DIR” is not defined at ./symbolicatecrash
解决方法是在终端执行命令:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
4.2 Warning: Unable to symbolicate from required binary: ~/Xcode/iOS DeviceSupport/13.6 (17G68) arm64e/Symbols/System/Library/Frameworks/CFNetwork.framework/CFNetwork
因为crash日志和.dSYM文件的uuid不匹配。
比如QA说这个crash是周五产生的,于是我从集群下载了周五的包对应dSYM文件。
但是实际QA记错了,这个crash是用的周四下载的包,所以应该使用周四的包对应的dSYM文件,才能保证uuid一致。
4.21 如何查看uuid
dsym的uuid
查看 my1211.app.dSYM 文件的 UUID ,在终端输入命令:
dwarfdump --uuid my1211.app.dSYM
crash日志的uuid
crash文件内Binary Images,其下一行 <> 内的 字符串就是crash文件的UUID。其行尾是app的名字及其路径。
最后
以上就是从容野狼为你收集整理的如何使用dSYM符号化crash日志。解析线上crash1 获取未解析的crash日志。2 获取dSYM文件3 使用xcode的symbolicatecrash工具进行符号化4 常见问题的全部内容,希望文章能够帮你解决如何使用dSYM符号化crash日志。解析线上crash1 获取未解析的crash日志。2 获取dSYM文件3 使用xcode的symbolicatecrash工具进行符号化4 常见问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复