CoreData 同步 iCloud 数据导致 App 启动超时被系统 watchdog 终止的原因及解决
Posted 大熊猫侯佩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 被看门狗终止,这到底是怎么一回事呢?
以上是关于CoreData 同步 iCloud 数据导致 App 启动超时被系统 watchdog 终止的原因及解决的主要内容,如果未能解决你的问题,请参考以下文章
合并具有相同属性但 ID 不同的 NSManagedObject,与 iCloud 同步会导致重复(Core Data,Swift 1.2)