5

具有二进制类型和启用“允许外部存储”的核心数据模型属性导致 NSPersistentCloudKitContainer 同步机制崩溃。

这只发生在接收设备上,这意味着上传到 CloudKit 是成功的,但是在 NSManagedContext 中从 CloudKit 下载会导致崩溃。

<NSSQLSaveChangesRequestContext: 0x281ec8420> , *** NSAllocateMemoryPages(28317598) failed with userInfo of (null)

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** NSAllocateMemoryPages(30318498) failed

这显然是内存崩溃,但我不知道如何解决它,这似乎是一个 iOS 错误。

4

1 回答 1

3

你不是一个人!这不是您做错的事情,如果您禁用“允许外部存储”选项(并从您的设备中删除应用程序以避免迁移崩溃),它将正常同步。显然,“允许外部存储”选项有问题,文件大于几mb。

在我的应用程序中,我正在同步 png 图像。那些大于〜28mb(如果我能正确回忆大小)的人无法同步到设备并使其崩溃。

我用反馈助手提交了一个错误报告,苹果第一次要求提供更多细节。我向他们发送了一个示例应用程序。

编辑:好消息伙计们!Apple 将我的错误报告标记为“确定的潜在修复 - 用于未来的操作系统更新”。我会检查 Xcode 12 beta 是否已修复并报告。

编辑 2:对于 iOS 14 和 Xcode 12,该错误已修复!耶!

于 2020-05-16T20:50:07.950 回答