zoukankan      html  css  js  c++  java
  • ios crash的原因与抓取crash日志的方法

     

     

    首先我们经常会闪退的异常有哪些呢?crash的产生来源于两种问题:违反iOS策略被干掉,以及自身的代码bug。

    1.IOS策略

    1.1 低内存闪退

    前面提到大多数crash日志都包含着执行线程的栈调用信息,但是低内存闪退日志除外,这里就先看看低内存闪退日志是什么样的。
    我们使用Xcode 5和iOS 7的设备模拟一次低内存闪退,然后通过Organizer查看产生的crash日志,可以发现Process和Type都为Unknown:

    1.2 Watchdog超时
    Apple的iOS Developer Library网站上,QA1693文档中描述了Watchdog机制,包括生效场景和表现。如果我们的应用程序对一些特定的UI事件(比如启动、挂起、恢复、结束)响应不及时,Watchdog会把我们的应用程序干掉,并生成一份响应的crash报告。

    1.3 用户强制退出

    一看到“用户强制退出”,首先可能想到的双击Home键,然后关闭应用程序。不过这种场景是不会产生crash日志的,因为双击Home键后,所有的应用程序都处于后台状态,而iOS随时都有可能关闭后台进程,所以这种场景没有crash日志。

    另一种场景是用户同时按住电源键和Home键,让iPhone重启。这种场景会产生日志(仅验证过一次),但并不针对特定应用程序。

    这里指的“用户强制退出”场景,是稍微比较复杂点的操作:先按住电源键,直到出现“滑动关机”的界面时,再按住Home键,这时候当前应用程序会被终止掉,并且产生一份相应事件的crash日志。

    通常,用户应该是遇到应用程序卡死,并且影响到了iOS响应,才会进行这样的操作——不过感觉这操作好高级,所以这样的crash日志应该比较少见。

    2. 代码bug
    此外,比较常见的崩溃基本都源于代码bug,比如数组越界、插空、空引用、引用未定义方法、多线程安全性、访问野指针、发送未实现的selector等。

    再来谈谈获取iOS设备上崩溃日志(Crash Log)的方法

    第一个方法:XCode  的菜单Window->Organizer    选择Devices  ->  选中的手机 -> 点击手机名称左边的箭头 会等到如下图

     

    在右边竖蓝色矩形框中 Type里面出现两种类型:Unknown和Crash 这两种类型分别是 内存不够回收内存kill应用程序导致Crash和程序异常Crash的日志。

          

    第二种方法 打开手机 - > 设置 -> 通用 - > 关于本机 - > 诊断与用量 - > 诊断与用量数据  这里面就是所有应用的Crash日志。(本人没找到这个)

    第三种方法 使用第三方软件:itools

    如果你平时不用iTunes,而是使用itools这类第三方的软件对iPhone设备进行管理,也是没问题的。

     

    打开itools,在你的设备下,找到“高级功能”,点击“崩溃日志”,然后将需要的日志导出到电脑里面就可以了!

    第四种方法 通过iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的crash日志

    大部分用户可能都会使用iTunes软件来管理iPhone或者iPad设备,这时候同步的Crash日志就会同步到电脑上,我们只需要在特定的路径里面寻找即可。

    Mac OS X:~/Library/Logs/CrashReporter/MobileDevice

    Windows XP:C:Documents and SettingsApplication DataApple computerLogsCrashReporter

    Windows 7/Vista: C:Users计算机登录名AppDataRoamingApple ComputerLogsCrashReporterMobileDevice

  • 相关阅读:
    【教程】利用OBS+腾讯会议进行线上考试
    【Python】Pygame入门
    【站长】视频解析接口大全 – 站长必备
    【Python】GUI编程(Tkinter)教程
    2017年Unity开发环境与插件配置安装(总体介绍)
    如何开发AR增强现实应用与产品
    红透半边天的VR(虚拟现实)产业
    VR就是下一个浪潮_2016 (GMGC) 全球移动游戏大会观后感
    《Unity3D/2D游戏开发从0到1》正式出版发行
    AR增强现实开发介绍(续)
  • 原文地址:https://www.cnblogs.com/decode1234/p/6491932.html
Copyright © 2011-2022 走看看