dsYM文件分析方法

dsYM文件分析方法,第1张

1、要使用Xcode符号 crash log,你需肢腔要下面所列的3个文件

①crash报告(.crash文件)

符号文件 (.dsymb文件)

③应用程序文件 (.app文件)

2、把这3个文件放到同一个目录下,打开Xcode的Window菜单下的organizer,然后点击Devices tab,然后选中左边的Device Logs。

然后把.crash文件拖到Device Logs或者选择下面的import导入.crash文件。

这样你就可以看到crash的详细log了。

1、将“.app“, “.dSYM”和 ".crash"文件放到同一个目录 ./Crash 下。

2、在Xcode中找到 symbolicatecrash 工具

找到后将 symbolicatecrash 拷贝到 ./Crash 目录下

3、切换到 ./Crash 目录下。 打开终端(Terminal)然后输入如下的命令:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

然后输入命令:

./指梁symbolicatecrash appName.crash appName.app >appName.log

现在,符号化的crash log就保存在appName.log中了。

我们使用atos命令来完成符号化,具体命令如下: $ atos -arch <Binary Architecture>-o <Path to dSYM file>/Contents/Resources/DWARF/<binary image name>-l <load address><address to symbolicate> 其中:

具体示例: atos -arch arm64 -o CrashDemo.app.dSYM/Contents/Resources/DWARF/CrashDemo -l 0x0000000102838010 0x0000000102838119

查看dsYM文件UUID:

方法一: 通过命令行查看dSYM文件的UUID

① xcrun dwarfdump --uuid <dSYM文件>

② dwarfdump --uuid TestAvoidCrash.app.dSYM/

③ dwarfdump --uuid TestAvoidCrash.app/TestAvoidCrash

方法二:通过符号表文件查看UUID

符号表文件的UUID与dSYM文件的UUID是一致的,因此可以通过符号表工具生成的符号表文件来查看dSYM文件的UUID:

生成符号表文件(.zip) --->解压符号表文件(.symbol) --->使用唯饥运文本编辑器打开符号表文件

前一篇: Jenkins四:构建触发器定时任务

后一篇汪型: Jenkins六:创建自困蔽猜己并御的Jenkins插件

进入正题,Jenkins自动打包时利用xcode提供的工具 dsymutil 可以生成dsYM文件,将生成的dsYM压缩后就可以进一步上传到 bugly 等平台或自己公司服务器

在 iOS 开发中,睁掘通常会遇到很多各种各样的线上奔溃,这无疑给用户带来了极其不老早嫌好的体验。在平时开发过程中,我们可以直接通过断点调试,或直接查看奔溃的侍手地方找到原因,但是一般情况下,线上的奔溃由于都是一些地址和偏移量组成的未符号化过的奔溃文件(即 crash 文件),我们都无法通过奔溃信息直接定位到具体原因!因此,将未符号化的 crash 文件通过 dSYM 解析就非常重要了。

本文主要简单地介绍如何将奔溃文件符号化,变成清晰可见的奔溃文件,以便快速定位奔溃原因。

其中,将 xxx.crash xxx.app.dSYM 中的 xxx 替换成对应的完整奔溃文件名和 dSYM 文件名,其它的都可以不用修改,直接执行即可。

例如,下面的奔溃文件在解析前为 UnparsedSymbol.crash , dSYM 文件夹为 Demo.app.dSYM

在执行之后,变成如下

其中 ParsedSymbol.crash 就是最终解析后的符号化文件, symbolicatecrash 是我们用于执行解析的 可执行文件 ,这个 可执行文件 来源于 Xcode 。

通常情况下,可执行文件 symbolicatecrash 的路径 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 是不变的,如果你不确定这个路径是否正确,通过以下命令可以查看

如果出现错误 Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69. ,执行如下命令


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8155074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存