版权所有,禁止匿名转载;禁止商业使用。
最近公司的app在ios6.0的系统上发生了崩溃,具体的崩溃现象非常诡异,在真机调试的时候可以打开,而在inhouse环境下打开时,则会出现崩溃的情况。
之前也没有看过崩溃日志记录相关的东西,因此看了下,系统真机的日志,网上有各种怎么看日志的方式,最简单的一种就是利用xcode -> Window ->Devices,可以看到devices中自己的设备,然后点击View Device Log就可以看到设备相关的log,然后我们可以根据Date/Time进行排序。
然后看到了崩溃的信息:
Application Specific Information:****** failed to launch in time
说明是app启动时间过长导致app无法启动,推荐的解决方式就是将appdelegate中的初始化代码放到一个background线程里面执行。
对于别的崩溃问题,也可以利用其中的Last Exception Backtrace:来判断出来,注意堆栈的打印顺序,堆栈的标号是从0开始的,但是执行的流程是从标号大的push到标号小的,因此可以看到堆栈调用到哪个位置而导致的崩溃发生。不要纠结于各种uikit和foundation在底部的frame信息干扰自己的判断。