美文网首页Ios@IONIC
查看上线app的Crash或者是用户手机的Crash

查看上线app的Crash或者是用户手机的Crash

作者: mkb2 | 来源:发表于2017-05-17 16:49 被阅读623次

    工作了这么久,但是还是没有好好的处理一下线上的Crash以及用户手机的Crash,正好公司要求,然后今天处理一下,做个记录

    我们公司使用的是友盟的Crash统计,今天就说说如何通过友盟找出线上的Crash.
    估计其他的也都如此,不在赘述:
    需要的东西:

    • 1.Crash的文件(在友盟后台,他们默认将Crash放到了execel表中)
    • 2.dYSM文件(Crash版本必须使用对应包的dYSM文件,否则不成功)
    • 3.友盟的umcrashtool工具

    具体实施:

    1.获取Crash的文件

    图1.友盟的后台获取Crash文档 图2.奔溃日志列表 图3.友盟错误详情,但是全都是内存地址,看不懂

    2.获取dYSM文件
    这个一定要使用对应Crash的版本,切记

    图4.在包列表中找到对应的版本 图5.找到.xcarchive结尾的,右键显示包内容 图6.拷贝.dSYM文件

    目标位置:~/Library/Developer/Xcode/

    图7.放置完毕效果图

    3.设置友盟的umcrashtool工具

    图8.友盟工具获取的地址 图9.将友盟工具和Crash日志文件放到桌面的文件夹中 图10.拖工具和execl表到命令行,然后回车,符号化日志,获取结果 友盟的日志要重上往下读,应为有start,end

    剩下的就是自己看这个然后获取具体的bug信息,查找问题了


    其他

    刚才说的,是使用友盟的东西,但是如果说用户使用了我们的app,但是我们没使用其他第三方工具手机Crash日志,怎么办?

    这里就不得不说说如何手机Crash日志的方法了:
    1.通过用户的手机获取
    2.通过Xcode获取
    3.通过iTunsConnect

    iOS设备上的应用闪退时, 操作系统会声称一个崩溃日志, 保存在设备上。
    路径是: 设置 -> 隐私 ->诊断与用量 ->诊断与用量数据。在这里可以看到设备上所有的设备崩溃日志.

    • 1.连接设备获取崩溃日志
      设备与电脑上的ITunes Store同步后, 会将崩溃日志保存在电脑上,崩溃日志保存在以下位置:
    设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上。根据电脑操作系统的不同,崩溃日志将保存在以下位置:
    Mac OS X:~/Library/Logs/CrashReporter/MobileDevice/
    
    Windows XP: C:Documents and Settings<USERNAME>Application DataApple ComputerLogsCrashReporterMobileDevice<DEVICE_NAME>
    
    Windows Vista or 7:  C:Users<USERNAME>AppDataRoamingApple ComputerLogsCrashReporterMobileDevice<DEVICE_NAME>
    
    图11.方法一.手机上的奔溃 图12.手机链接完电脑,通过特定上边写的路径,获取到的文件们 找到对应的奔溃日志,给我们

    如果用户和你关系很好,要是发送了Crash,你可以要求他发松这个文件给你,然后查找问题

    • 2.Xcode获取


      图13.方法二.Xcode查找奔溃日志
    图14.Xcode看到的日志
    • 3.iTunesConnect获取


      图15.方法三.iTunesConnect查找奔溃日志

      但是这个有的时候不好使,不一定及时更新,用户不开始上报,白扯


    图16.Bug产生的原因 图17.Crash日志都是16进制保存的,我们要去给他”符号化“ 图18.符号化所需要的东西 图19.符号化完毕的东西,从后面往前读 图20.符号化的图 图21.未符号化的Crash日志,主要看看各部分的含义
    (1) 进程信息
    第一部分是闪退进程的相关信息。
    Incident Identifier是崩溃报告的唯一标识符。
    CrashReporter Key 是与设备标识相对应的唯一键值。虽然它不是真正的设备标识符,但也是一个非常有用的情报:如果你看到100个崩溃日志的CrashReporter Key值都是相同的,或者只有少数几个不同的CrashReport值,说明这不是一个普遍的问题,只发生在一个或少数几个设备上。
    Hardware Model 标识设备类型。 如果很多崩溃日志都是来自相同的设备类型,说明应用只在某特定类型的设备上有问题。上面的日志里,崩溃日志产生的设备是iPhone 4s。
    Process 是应用名称。中括号里面的数字是闪退时应用的进程ID。
    
    (2) 基本信息
    这部分给出了一些基本信息,包括闪退发生的日期和时间,设备的iOS版本。如果有很多崩溃日志都来自iOS 6.0,说明问题只发生在iOS 6.0上。
    
    (3) 异常
    在这部分,你可以看到闪退发生时抛出的异常类型。还能看到异常编码和抛出异常的线程。根据崩溃报告类型的不同,在这部分你还能看到一些另外的信息。
    
    (4) 线程回溯
    这部分提供应用中所有线程的回溯日志。 回溯是闪退发生时所有活动帧清单。它包含闪退发生时调用函数的清单。
    
    (5) 线程状态
    这部分是闪退时寄存器中的值。一般不需要这部分的信息,因为回溯部分的信息已经足够让你找出问题所在。
    
    (6) 二进制映像
    这部分列出了闪退时已经加载的二进制文件。
    

    参考文章:
    iOS应用崩溃日志分析

    相关文章

      网友评论

        本文标题:查看上线app的Crash或者是用户手机的Crash

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