Open SuperMan-Lfj opened 3 years ago
补充: Error: "DEVELOPER_DIR" is not defined at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash line 69.
需要export一下: export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
符号化的准备
当程序崩溃的时候,我们可以获得到崩溃的错误堆栈,但是这个错误堆栈都是0x开头的16进制地址,需要我们使用Xcode自带的symbolicatecrash工具来将.Crash和.dSYM文件进行符号化,就可以得到详细崩溃的信息。
获取crash文件
如果是我们自己直接使用手机连接崩溃或者崩溃之后连接手机,选择Window -> Devices and Simulators-> 选择自己的手机 -> view device logs 就可以查看我们的崩溃信息了。
右击文件,Export log, 就可以导出crash文件了。
方式一:直接使用xcode工程
如果我们有编译的xcode工程,里面包含了dSYM的话,那么直接使用xcode工程也是可以直接符号化的。
右击打开方式使用xcode打开crash文件,然后会弹出project的选择对话框:
选择对应的project工程,xcode将会自动帮助我们符号化crash文件,相对来说,比使用命令行简单一些。
方式二:使用symbolicatecrash命令
首先找到symbolicatecrash所在的位置,命令行运行
会列出四种系统所对应的路径。我们这里定位手机崩溃,所以使用iphoneSumilator路径下的文件。
运行命令,将crash符号化:
其中:
运行之后,符号化的结果就得到了:
方式三:atos
比如 错误堆栈信息:
1、找到对应的应用打包生成 的appName.dYSM 文件,在终端中使用cd命令进入该目录 2、用atos命令来符号化某个特定的模块加载地址:
arm64 armv7 是两个不同的CPU架构。
部分图片来自网络