问题发现
这个周末(11-3)在家里升级了XCode到最新的版本,很顺利。周一(11-4)上班,给测试装了一个最新的程序,让他们验证。半小时后,反馈有崩溃问题。我也是一脸懵逼,心情也是崩溃的。记得上周末(11-1),都不知道测过多少次了,记得当时一切顺利啊。
单步调试
由于是必现的问题,问题定位很方便,崩溃发生在跳转登录页面的时候。毫无疑问,单步调试。
![](https://img.haomeiwen.com/i1186939/7a0e39fd241f7993.png)
这块代码就是从故事版读取界面,然后直接跳转过去。相关的参数,比如故事版storyboard
,起点控制器vc
,目标控制器login
都不为nil
。但是,只要执行下一句:
[vc.navigationController showViewController:login sender:nil];
就崩溃了,崩溃信息是:
invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_Run
百度了一下,发现这个出错信息很常见,特别是崩溃的时候,但是对于问题定位一点用的没有。真是垃圾的苹果。
替换实验
-
用模拟器,很正常啊,跳转了N多次,怎么试都不会崩溃。
-
换个手机,照样崩溃。
-
打包,导出
Ad-Hoc
版本,用iTools
安装,再试,仍然崩溃。
Xcode降级
实在没办法了,想起来周末升级了Xcode
,所以准备试一下低版本的。当前的版本是11.2
,上一个版本是11.1
。我一直是第一时间升级MAC系统和XCode
的,所以XCode11.1
应该是好的。
采用XCode11.1
来调试,模拟器和真机都是好的,不会崩溃。就因为苹果的不负责任,瞎折腾了一天时间,差评。
怎么办?
实在想不出是什么原因,百度上也没有找到相关的文章。估计只有苹果自己清楚了。看来,下次XCode
升级要保守一点,老版本还是要保留一下的。苹果,实在是太不靠谱了。发版本之前,难道就不进行测试一下的?
![](https://img.haomeiwen.com/i1186939/d97835cdfcd80eab.png)
网友评论