新版本上线后,许多iOS14用户反馈闪退问题,于是在Xcode里下载14.2的Simulator,并且运行。

image-20220322183939624

运行结果如下,在切换TabView的时候发生报错,

image-20220322184150286

在AppDelegate中报错,由于没有报错信息,只能通过调用栈来按图索骥,但是在看之前,简单看这个报错,INVOP表示空指针读取,即访问了异常内存地址产生的报错。

image-20220322184329289

看到调用栈中有collectionView中的回调函数,这个函数一搜或者了解UIKit的开发者都知道,是控制CollectionView中Cell UI返回的回调函数,于是搜索错误代码和这个回调函数,能够找到一些问题,但是不是我们想要的答案。

直接搜索EXC_BAD_INSTRUCTION swiftui tabview,能够找到论坛中的一个帖子https://developer.apple.com/forums/thread/681903,问题得到回复,iOS15修了,好吧。。但是iOS14咋办呢,直接搜索下这个Style,第一篇Stack Overflow上就提到了解决办法,原来是iOS14中NavigationView与TabView的冲突。

问题得到解决。