CoreData 同步 iCloud 数据导致 App 启动超时被系统 watchdog 终止的原因及解决

在这里插入图片描述


问题现象

CoreData + iCloud 支持的 App 在启动时偶尔会出现被系统强制退出的情况,用 Xcode 也无法中断调试这种崩溃,查看真机上的崩溃日志如下:

在这里插入图片描述

如上图所示,我可以了解到 App 崩溃的原因是由于启动超时被系统看门狗(watchdog)强行关闭了:

process-launch watchdog transgression: application<com.hopy.MyApp>:804 exhausted real (wall clock) time allowance of 20.00 seconds

在本篇博文中,您将学到以下内容:

  • 如何手动启动(默认是自动同步) CoreData 本地与 iCloud 云数据之间的同步操作?
  • 本例中 NSPersistentCloudKitContainer 构造器为何要对此负责?
  • 什么情况下 App 启动会招致系统看门狗强行关闭以及修复的一般思路?

我们还可以从堆栈遗迹中看到:导致超时的元凶是 NSPersistentCloudKitContainer 对象构造器。其实还有很多其它情况也会导致 App 被看门狗终止,这到底是怎么一回事呢?

猜你喜欢

转载自blog.csdn.net/mydo/article/details/128115347