问题表现:
一个iOS项目通过Xcode真机运行起来后界面显示出来了,但是点击界面无响应(类似crash),控制台停止打印,但不是崩溃,等待1到2分钟后,APP可以正常往下进行点击使用并开发调试。
当出现这个问题的时候第一反应是某一些操作卡住了主线程,如果是这种情况可以通过大段注释法来排查是哪儿的问题。 最后通过大段注释法没有能解决。。。
在以上方案没有解决的时候我能想到的办法是利用自带的工具分析(Instruments)
通过Instruments 分析,内存泄露、CPU使用、及APP启动等耗时操作。
通过工具跑的结果如下图,很明显大段的红色 (severe Hang),就是所谓的系统被挂起。
这时候联想到我运行完停止运行,APP能正常使用的情况,肯定跟代码没有关系,最后通过地址查到是真机配置文件跟当前运行真机不匹配的问题。
找到问题后,解决问题就比较简单
1、打到此路径,把与当前手机系统相关的配置文件全部删掉 ~/Library/Developer/Xcode/iOS DeviceSupport
2、通过菜单栏:Window -> Devices and Simulators进入Devices选择栏;选中对应设备右击选中Unpair Device,解除对当前设备的信任;
3、然后重新运行,10秒内,搞定