Xcode 运行 iOS 项目到模拟器/真机一直卡在启动页(Launch Screen)

0x00 前言

很久之前,Xcode 12 还是 13,项目运行起来,有时候是真机,有时候是模拟器,一直卡在 App 的启动页,也就是 Launch Screen,稍微低一点的版本倒还好,那时候 iOS 15 就会卡住,低的就不会, 而且只在 Xcode 项目运行时会,结束 Xcode 项目的运行,再直接运行 App 是不会卡住的 ,网上找过一些办法,但是都没啥卵用,后面就不了了之。

最近,更新了 MacOS Monterey(没错,2022年9月份,我才更新的),Xcode 也更新到了 14,iOS 16 也出来了,运行之前的项目到 iOS 16 的模拟器(14 Pro Max),还是一直卡在启动页,实在忍受不了,就继续上网找解决办法。

最普遍的方法,就是删除 Derived Data,目录为 /Users/yourname/Library/Developer/Xcode/DerivedData,然后重启 Xcode,试过好几遍,没啥用,该卡还是卡,甚至有一次,看到一个办法是删除 /Users/yourname/Library/Developer/Xcode/ 下的所有内容,我也没太多想,删除,加上清除了回收站,结果芭比Q了,很多 Xcode 的配置、Code Snippet 等,都是在这个目录下,还好我之前有 Time Machine 备份,有些东西都复制回来了。

0x01 原因

这篇文章我只记录下我自己遇到的情况及解决办法,不一定和你一样,仅当参考。

在网上找解决办法的时候,看到一个人说的一句话,让我有点茅塞顿开,是不是断点的问题。当我把 Xcode 里面的所有断点关闭之后,再运行项目到模拟器,发现很快就进入首页了,不会卡在启动页,此时非常开心,因为找到问题所在了。

接下来就是试着开启一个个断点,看看是开启了哪一个断点之后,会卡在启动页,经过测试,发现问题断点:

Untitled

这是 Reveal 调试的断点,根据 Reveal 官方的这篇文档添加的,已经很久了,然后我就去 Reveal 官网找,看到了一篇文档:My app is hanging on launch under Xcode 13 and iOS/tvOS 15,原来 Reveal 官方自己就有收到反馈,那就好办了。

0x02 解决

根据上面的 Reveal 的文档,将断点改为:

Untitled

然后再重新运行项目,完美,顺利进入,不会卡在启动页了。

PS:Reveal 官方文档里面说,要更新 Reveal 到 30及以后,但是我的 Reveal 还是 26 的,本来想想可以更新下,不过我买的 Plan 已经过期很久了,所以一直没有更新,但是我还是试了试,发现并不用 30+,所以就没有重新购买新版本的 Reveal。

既然问题解决了,升级新版本 Reveal 的钱也可以暂时先省下来了。😄

完~