美文网首页iOS调试
.ips崩溃报告文件(dSYM)分析

.ips崩溃报告文件(dSYM)分析

作者: ZhangCc_ | 来源:发表于2017-10-19 18:01 被阅读50次

对于我们iOS开发者来说,最心碎的事莫过于苹果审核一个星期后上架app store,而第二天就报出闪退bug。
 
iOS app的所有崩溃记录都会记录在设备上,所以对于和我一样没有集成让用户发送崩溃报告功能的iOS开发者来说,要获得crash文件就必须先连上崩溃过的机器,然后打开Xcode,选择Window -> Devices,选择你自己的机器,然后点击View DeviceLogs,这时候会打开一个小窗口,这就是你机器上至目前为止存的所有app的崩溃信息了。如果是好久没看过这个信息,打开后还要读取好久才能完全读完,总之,找到你的app最后一次崩溃记录,右键导出。(先不要在意下图的信息,我只是随便找了一个)

iOS <wbr>.ips崩溃报告文件分析
我们先看一眼导出来的.crash文件,上半部分都是一些基本信息(基本没用),重点看下崩溃部分的记录,如下图(是下图,不是上图!)
iOS <wbr>.ips崩溃报告文件分析
看红框里的,隐隐有种不翔的预感,很像是数组越界之类的问题啊,可下边几行写的都是啥,这怎么定位问题啊。对于App的崩溃分析,一般有两种情形:
App在本机构建、打包(所以本机已经有了对应的符号表)
App在别的机器上构建、打包(需要下载.dSYM符号文件)
  1. App在本机构建、打包
    由于我们本机在构建过程中已经生成了符号信息,所以符号化崩溃文件的过程很简单:
    重命名崩溃报告文件为.crash
    后缀(对于从Windows导出的崩溃文件适用)
    打开Xcode
    – Organizer
    – DeviceLogs

点击import,导入.crash文件

这时就可以看到符号化了的崩溃日记。

  1. App在别的机器构建、打包
    先在桌面上建个文件夹,就叫crash吧
    1、.ips崩溃报告文件重命名为.crash后缀(扔到crash文件夹里)

    2、下载对应的ipa(如果实在没有了就再从Archives里导出来一个,但一定要保证是你上次发布用的那个),后缀改为.zip,解压,然后把Payload文件夹下的.app文件
    也扔到刚刚的crash文件夹里。

    3、接下来还需要dSYM文件,还是在Archives里,找到发布用的那个,右键Show in Finder,如图


    iOS <wbr>.ips崩溃报告文件分析

    然后对文件夹中的这个.xcarchive文件右键,显示包内容,就可以看到一个名为dSYMs的文件夹,把里面的.dSYM文件
    拷出来,还是放到桌面的crash文件夹里。

4、symbolicatecrash是一个隐藏工具,它在我的Mac中的具体路径如下
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

或者你也可以在终端中输入命令搜索:
find /Applications/Xcode.app -name symbolicatecrash -type f

把这个路径拷贝一下,然后粘到Finder的“前往文件夹”下,前往,就可以看到symbolicatecrash工具了,现在把它也拷到桌面的crash文件夹里。

5、至此,crash文件夹里现在有4个文件了,分别是.app, .crash,.dSYM, symbolicatecrash。

6、接下来就是用终端敲命令,生成更易分析的crash。

首先用cd命令进入到crash文件夹下,然后输入以下命令
./symbolicatecrash ./xxx.crash ./xxx.app.dSYM > symbol.crash

xxx号指的是具体的文件名,请自行替换成对应的名称。
运行,这时候终端可能会报错 Error:"DEVELOPER_DIR" is not defined at /usr/local/bin/symbolicatecrashline 53.。这时候在终端中再输入
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

然后再跑一下刚刚的那个命令,这时候看一下桌面的crash文件夹下就会多出一个名为“Control_symbol.crash”的文件,这就是可定位问题的crash文件了,如图

iOS <wbr>.ips崩溃报告文件分析

我们打开看一下。


iOS <wbr>.ips崩溃报告文件分析

现在红框里原来的那些乱七八糟的东西已经“翻译”成了崩溃在具体的哪一个.m文件的哪一行。
OK,翻译崩溃日志成功~

相关文章

  • iOS crash解析

    1.参考.ips崩溃报告文件(dSYM)分析[https://www.jianshu.com/p/80e2e03b...

  • .ips崩溃报告文件(dSYM)分析

    对于我们iOS开发者来说,最心碎的事莫过于苹果审核一个星期后上架app store,而第二天就报出闪退bug。iO...

  • iOS解析ips crash文件

    必须有 ips文件,dsym 步骤如下: 建立一个文件夹crashAnalysis(随便取个名字)。 从崩溃的手机...

  • symbolicatecrash及atos命令

    根据 dSYM 文件和 .crash文件,分析崩溃原因要保证.dSYM 文件的 uuid 和.crash 文件的 ...

  • 解析crash.ips

    目标 根据.ips文件和.dysm解析Crash 准备 将.ips, .dSYM文件存放在一个新建的文件夹下,命...

  • iOS .ips(crash)崩溃报告文件分析

    在工作中,开发完一个版本后,就轮到测试部进行测试,如果发生了崩溃,一般会把一个.ips的崩溃报告文件导出来发给我们...

  • iOS无dSYM符号表情况下的崩溃分析

    一、dSYM符号表分析崩溃 在能够获取到dSYM符号表文件的情况下,分析崩溃详情请移步iOS crash 解析定位...

  • Crash以及报错总结

    方法1:下载dSYM工具分析 dSYM分析 方法2:终端cd文件反编译 由于这类的崩溃信息通常难以重现, 没有任何...

  • 解析dSYM文件

    全文概要: 1.如何定位bug 2.如何设置全局断点 3.如何导出dSYM文件 4.崩溃分析,解析dSYM文件 一...

  • iOS 的崩溃捕获-堆栈符号化-崩溃分析

    一、获取 Crash、dSYM 文件 获取到的 .ips 改后缀为 .crash 即可 真机 Crash 文件目录...

网友评论

    本文标题:.ips崩溃报告文件(dSYM)分析

    本文链接:https://www.haomeiwen.com/subject/wokpuxtx.html