如何解码一个dSYM文件(崩溃日志)?

我的iOS应用程序崩溃。 我想阅读与dSYM文件的崩溃日志。 这怎么可能?

首先,你需要三个文件:dSYM文件,应用程序文件和崩溃日志。

打开X代码,在项目导航器中显示Products文件夹,并在“查找器中显示”该应用程序文件。 在这里你也可以finddSYM文件。 将它们复制到一个文件夹。

现在打开terminal,并导航到您之前复制的两个文件的文件夹。 运行: dwarfdump --uuid Application_name.app/Application_name您应该收到应用程序的UUID。 运行以下命令: dwarfdump --uuid Application_name.app.dSYM – 您将再次收到UUID,该UUID应与先前接收的UUID相匹配。

打开崩溃日志(X Code – Organizer – 崩溃),并find出现“Binary images”标题的行。 这是第一行中的另一个UUID,它应该再次与先前在terminal中接收的UUID匹配。

现在,您可以确定崩溃logging在您正在检查的版本中,因此再次打开崩溃日志文件,find“线程0”部分,应用程序名称和两个地址应该有两行。 如:

 Application_name 0x123456 Application_name 0x987654 

在terminal你现在应该运行: atos -arch armv7 -o address1 address2 (地址1和地址2应该被replace为前面的两个地址,而armv7与你的系统 – 它显示在线,你得到的UUIDs) 。

快乐debugging!

编辑:我想提这个职位作为我的基地。

实际上,你不能解码dSYM文件,而是从它得到错误细节1.从日志文件中find崩溃线程和地址:以下是0x0nnn 2.从日志文件中find本机代码types:以下是arm64
3.finddSYM文件(符号文件),从.xcarchive中提取:以下是xx.app.dSYM

 dwarfdump --lookup 0x0nnn --arch=[arm64 armv6 armv7] xx.app.dSYM