做为一名iOS移动应用开发者,为了确保你的应用程序正确无误,在将应用程序提交到应用商店以前,你一定会进行大量的测试工做;并且在你测试的过程当中应用程序运行的很好,可是在应用商店上线以后,仍是有用户抱怨应用程序会“闪退”!如今做为应用程序的开发人员你确定会准备打开代码准备修复“闪退”的问题,可是就在这个时候你会发现,到底那段代码?那个地方的问题呢......;这个时候iOS崩溃日志就派上用场了,那么如今咱们就来研究怎么获取应用崩溃的日志,以及从日志追踪到代码。html
(一)什么是崩溃日志,从哪里能获得它:iphone
iOS设备上的应用闪退时,操做系统会生成一个崩溃报告,也叫崩溃日志,保存在设备上,崩溃日志上有不少有用的信息,包括应用是什么状况下闪退的。一般,上面有每一个正在执行线程的完整堆栈跟踪信息,因此你能从中了解到闪退发生时各线程都在作什么,并分辨出闪退发生在哪一个线程上。工具
(二)获取崩溃日志的几种方法:测试
一、当用户抱怨闪退时,你能够要求他让设备与iTunes同步,设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上(路径:Mac OS X:~/Library/Logs/CrashReporter/MobileDevice/)到上述位置把崩溃日志下载下来,而后经过电子邮件发送给你;用这个方法获取崩溃日志时,你必需尽可能获取用户设备生成的全部崩溃日志。由于崩溃日志越多,就越容易诊断问题所在。spa
二、若是你装了Xcode,也能很容易经过Xcode从你的设备上得到崩溃日志;将iOS设备链接到电脑上,而后打开Xcode;从菜单栏上选择 Window菜单, 而后选择 Organizer (快捷方式是 Shift-CMD-2)在Organizer 窗口上, 选中 Devices 标签栏,在左侧的导航面板上,选中Device Logs;LIBRARY下面的Device Logs是你全部设备(曾经链接到Xcode的)的日志;每一个设备下面的Device Logs是对应设备的日志。操作系统
三、应用提交到App Store后,你也能从 iTunes Connect 获取到用户的崩溃日志,登陆到 iTunes Connect 上,选择 Manage Your Applications, 点击相应的应用,点击应用图标下面的View Details按钮, 而后点击右栏Links部分的 Crash Reports;若是没有崩溃日志,试试点击Refresh按钮刷新一下。若是你的应用用户量还很少,或者刚上架不久,iTunes Connect帐号上也可能尚未任何崩溃日志;若是有的话你就会看到不一样iOS版本用户下的崩溃信息。线程
四、使用工具来获取应用程序崩溃日志,如今小编来推荐一款好用的工具(名称:Bugly,网址:http://bugly.qq.com/)官网上由详细的讲解,还附有Demo,小编就不一一解说了;日志
五、iphone崩溃日志分析工具symbolicatecrash;Symbolicatecrash是Xcode自带的一个分析工具,能够经过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的地址替换成代码相应位置(详情见:http://www.cnblogs.com/ydhliphonedev/archive/2012/12/07/2806866.html);code
(三)什么状况下会产生崩溃日志:移动应用开发
1.用户违反操做系统规则:
违反iOS规则包括在启动、恢复、挂起、退出时watchdog超时、用户强制退出和低内存终止。
2.应用中有Bug:
这时候你们会想,有Bug的应用程序还会上传应用商店成功吗?小编的理解是应用程序中一些潜在的Bug也许是iOS系统更新以后产生的Bug,就想iOS8 -> iOS9以后苹果默默的就把http改为了https。