错误原因如图(图1)所示:
方法一:
由于这类的崩溃信息通常难以重现, 没有任何的重现步骤,所以我们得找到发布该版本时的原始代码,可能会需要回朔到以前的SVN或者Git版本。
然后找到当时上传代码时使用的DYSM文件,这文件通常在.xcarchive文件中。 右键该文件, 然后通过Terminal工具cd到
/Users/xxx/Library/Developer/Xcode/Archives/2017-08-25/AppName\ 2017-8-25\ 下午6.31.xcarchive/dSYMs/AppName.app.dSYM/Contents/Resources/DWARF
注意:
1。对于成功生成archvie的项目, 在这个archive的包中, 是可以通过显示包内容, 看到DSYMs文件夹和一个products文件夹, 继续显示DSYMs文件夹下,可以看到一个AppName.app.DSYM文件,继续对它显示包内容,可以看到Contents/Resources/DWARF/xxxx文件, 这个文件是编译后的二进制文件,通过它可以进行反编译,从而找到二进制对应的源码位置。
2。 在xcode中,archive成功后, 会在Organizer界面中的Archives下, 可以看到所有的archive文件, 右键Show in Finder可以找到这个文件。
然后执行atos -arch CPUType -o AppName BaseAddress. 就可以看到这处内存地址反编译回来的源码行。
AppName、CPUType、BaseAddress可以从图一中寻找然后替换。
方法二:
如果不想用Terminal工具,这里给大家一个可视化小工具(图标如图2所示),https://github.com/answer-huang/dSYMTools。点击下载源码,运行就ok了。
该工具界面如下图:
按照顺序依次选择,这个选择要对照错误(图1)进行选择和填充。
根据内存地址反编译回来的源码行。可以有效地帮助分析原因。(如果对你有所帮助,请手动点赞哦)