美文网首页objectc入门及进阶阶段
ios crash的原因与抓取crash日志的方法<来自网

ios crash的原因与抓取crash日志的方法<来自网

作者: 跬步千里_LenSky | 来源:发表于2016-05-13 00:40 被阅读803次

首先我们经常会闪退的异常有哪些呢?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,在你的设备下,找到“高级功能”,点击“崩溃日志”,然后将需要的日志导出到电脑里面就可以了!

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

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

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

相关文章

  • ios crash的原因与抓取crash日志的方法<来自网

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

  • iOS Crash 流程化1:一般的 Crash 日志解析方法

    iOS Crash 流程化:一般的 Crash 日志解析方法TL;DR一、手动解析 Crash 日志1、需要的相关...

  • iOS Crash 流程化1:一般的 Crash 日志解析方法

    iOS Crash 流程化:一般的 Crash 日志解析方法TL;DR一、手动解析 Crash 日志1、需要的相关...

  • 3.Xcode方面问题

    1.iOS崩溃日志分析 iOS 获得crash dSYM方法(手机本地连接方式) [iOS Crash文件分析]-...

  • iOS Crash问题

    本文就捕获iOS Crash、Crash日志组成、Crash日志符号化、异常信息解读、常见的Crash五部分介绍。...

  • iOS 抓取crash日志

    前言在app开发过程中难免会遇到崩溃的问题, 在线下的环境我们可以通过断点找到崩溃的代码, 从而分析出问题的原因,...

  • ios抓取crash日志

    经常会闪退的异常哪些:数组越界、空引用、引用未定义方法、内存空间不足 1、使用XCode点击Window—Devi...

  • crash

    iOS Crash文件的解析(一)教你如何对ios崩溃(crash)日志做符号化IOS本地日志记录解决方案友盟统计...

  • GT-IOS性能测试的集成工具

    简介 GT:对app进行性能测试、开发日志的查看、crash日志查看、网络数据包的抓取、代码耗时统计。支持iOS和...

  • iOS异常捕捉简介

    iOS系统自带的 Apple’s Crash Reporter 记录在设备中的Crash日志,Exception ...

网友评论

    本文标题:ios crash的原因与抓取crash日志的方法<来自网

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