我在使用 Xcode 模拟器时遇到了一个持续存在的问题。每当有新的 Xcode 更新可用时,模拟器就会停止工作,并显示“无法启动模拟器”错误。
直到昨天为止都运行良好。 Xcode 15.2 在 12 小时前可用,之后模拟器就停止工作了。每次发生这种情况时,模拟器都无法工作,除非我更新了 Xcode。
xcrun simctl shutdown all && xcrun simctl erase all
这里不需要删除缓存。我预计这只会导致问题稍后再次出现。
我们已确定此问题的几个原因:
dyld_sim 共享缓存无法映射到看门狗计时器内的进程,因为它是最近创建的,并且仍在被系统扫描。删除缓存将暂时解决此问题,但下次创建缓存时您会再次遇到该问题。等待约 2 分钟即可完成扫描。此外,如果您更新到 Xcode 15.3 Beta 2 或更高版本(上周发布),我们现在会避免尝试使用缓存,直到扫描完成。
从模拟器运行时磁盘映像读取时存在性能问题,这可能会导致启动触发看门狗计时器,特别是当 I/O 与生成 dyld 共享缓存的进程竞争时。此性能问题已在 macOS 14.4 Beta 及更高版本中得到解决。
因此,我建议面临此问题的用户更新到 macOS 14.4 Beta 或更高版本以及 Xcode 15.3 Beta 2 或更高版本。如果您仍然遇到此问题,请收集以下 tarball 并将其附加到位于 http://bugreport.apple.com 的报告中: xcrun simctl 诊断 须藤系统诊断
此外,如果可以的话,请通过以下方式启用调试日志记录: 默认写入 com.apple.CoreSimulator DebugLogging -bool YES
(您可以稍后使用默认删除 com.apple.CoreSimulator DebugLogging 删除调试日志记录)
请注意,在过去 6 个月中,我们收到了有关此问题的多份报告,但分类工作一直很困难,部分原因是我们尚未获得上述请求的日志记录,而当报告者开始回复请求时,他们脱离有问题的状态(因为它通常会在几分钟内自行解决)。请不要假设其他人正在提供数据。谢谢!