要分析崩溃日志,首先需要保留发布时的编译出来的.xcarchive文件。这个文件包含了.DSYM文件
第一种方法:
使用dwarfdump命令
dwarfdump --uuid xx.app.dSYM 用来得到app的UUID。
dwarfdump --lookup 0x12b45d -arch armv7 xx.app.dSYM 使错误的日志能看懂,把相应的内存地址对应到正确的地方。
如果一开始dwarfdump命令不能用的话,要先装Command Line Tools,这个在设置里面能下载(cmd+“,”打开设置)。另外还必须在进入.DSYM所在文件夹。
使用dwarfdump需要安装Command Line Tools,XCode里设置下载。而且需要进入.DSYM所在文件夹里进行操作。
使用xcrun atos命令
atos -o YourApp.app.dSYM/Contents/Resources/DWARF/YourApp 0x00062867
下面重点推荐下这个方法,方便快捷
下面这是我的项目里通过友盟统计到的崩溃日志,如果光看这些日志报告的话,是不会知道是哪行代码引起的。
使用方法是把对应版本的.xcarchive文件拖到工具。对比UUID和友盟里日志是否一致,一致就把错误的地址信息拷贝到箭头处。点击分析。
即可得出具体代码崩溃位置。
2020-3-27更新--->
手动生成dysm文件
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/yym/Library/Developer/Xcode/Archives/2020-03-27/HuoGameBox\ 2020-3-27\,\ 4.39\ PM.xcarchive/Products/Applications/HuoGameBox.app/HuoGameBox -o HuoGameBox.app.dSYM
no debug symbols in executable (-arch armv7)
bugly
https://bugly.qq.com/docs/user-guide/symbol-configuration-ios/?v=1492997248592
XCode -> Build Settings -> Code Generation -> Generate Debug Symbols -> Yes
这个很重要,有的APP需要自己做签名可能把这个勾掉了
XCode -> Build Settings -> Build Option -> Debug Information Format -> DWARF with dSYM File
网友评论