很多时候模拟器debug无法复现真机上的crash
因此需要打包安装到真机后,读取本地crash log文件分析
1、获取crash文件
<1>这里只介绍苹果官方同步软件iTunes的路径,将打包后的ipa文件通过iTunes安装到手机,进行crash复现操作,就会在以下路径生成crash log文件(其它同步软件也会有提供崩溃日志)
Mac OS X:~/Library/Logs/CrashReporter/MobileDevice
Windows XP:C:\Documents and Settings\Application Data\Apple computer\Logs\CrashReporter
Windows 7/Vista: C:\Users\计算机登录名\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice
<2>选择你测试的手机文件夹,找到测试日期对应crash文件
2、读取文件,打开文件后会看到如下内容
其实也是比较重要的内容,这里只做一个简述,让我们对怎样看crash log有个思路,因为crash有各种各样的原因,例子里并不能涵盖所有
<1>Exception Type: EXC_CRASH (SIGABRT)
SIGABRT一般为无法找到对象
<2>Triggered by Thread: 21
也就是在第21个线程出现了crash,接着就将线程定位到第21个
<3>
一般来说app name后面会对应一些方法提示,也就是expect point,就可以按照方法名结合Exception Type去查一下该方法内的问题
但是我这个没有,于是定位到Thread 21 name: Dispatch queue: com.tune.concurrentQueue这一行,说明是我在开启tune相关线程时出现了cash,因此需要在crash发生页面查找tune相关操作,然后进行排查。
这样就有了切入点,而不是无头苍蝇一般到处找问题
基本的思路就是这样了,希望能帮助到你,不对的地方还请指出