iOS 应用崩溃问题现状

一、崩溃类型

1. 应用存在的bug,即出现Objective-C的崩溃

   比如数组越界、selector方法没有实现等,系统抛出一个NSException

这种情形可以通过系统的API注册UncaughtNSException处理函数捕捉,定位修复比较容易

2. 应用违反系统规则而出现错误

比如Watchdog超时、用户强制退出、低内存终止等,系统抛出unix信号

这种情形可以通过注册信号处理函数捕捉


二、崩溃问题分析与处理方法

1. 开发阶段
(1) 开发人员直接可以debug调试验证
(2) 测试人员测试时出现的crash,一方面提供浮现场景,开发人员浮现验证;另一方面直接查看测试设备的崩溃日志。(连接设备,打开Xcode - Window - Organizer,在左侧面板中选择Device Logs(可以选择具体设备的Device Logs或者Library下所有设备的Device Logs),然后根据时间排序查看设备上的crash日志)

2. 发布阶段
(1) 用户反馈,开发人员浮现场景调试验证
(2) 用户反馈,提供设备崩溃日志给开发人员
(3) iTuns Connect服务提供CrashReport日志

考虑到并不是所有iPhone用户都允许自动发送诊断报告(crash日志),而且对于部分提交到Apple得crash日志,开发者还需要手动去拉取,然后找到对应的符号文件进行解析——这是一件很繁琐的事情。所以实际项目开发中,通常接入现有的crash收集工具,或者自己编写一个进行自动化收集、解析和统计汇总,比如腾讯的bugly系统。


1. http://blog.csdn.net/jasonblog/article/details/19031517
2. http://bugly.qq.com

你可能感兴趣的:(iOS 应用崩溃问题现状)