CloudKit 的 CoreData:记录类型未显示在仪表板中

CoreData with CloudKit: record types not showing in dashboard

我正在通过 NSPersistentCloudKitContainer 为我的应用添加 CloudKit 支持。

在开发者门户中,我将 iCloud 和推送通知功能添加到我的应用程序标识符中,下载了新的配置文件并将其安装在 Xcode 上。在 iCloud 中,我检查了“CloudKit 支持”并为我的应用程序启用了一个容器。

在我的应用目标 Signing & Capabilities 中,我启用了远程通知和 CloudKit,并检查了容器。

现在我 运行 我的应用程序使用 NSPersistentCloudKitContainer 来存储我所有的核心数据。我执行创建新托管对象的任务。这是在我使用 iCloud 登录的设备上。

在 CloudKit 仪表板中,我看到了我的应用程序的容器,但没有看到任何对象进入云的证据。我在开发中,单击记录类型,我希望从我的实体中看到一些“CD_...”。仅显示用户记录类型。

我从头开始重新安装该应用程序,以查看之前创建的对象是否从云端同步但没有,显然那里什么都没有。

有什么想法吗?

更新:在我的设备上,我使用个人 Apple ID 登录。我使用相同的 ID 注册了开发人员计划。该应用未显示在使用 iCloud 的应用列表中。

我在创建 NSPersistentStoreDescription 时不知何故错过了这一步:

description.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "blah")

我还没有在仪表板中看到它,因为现在我收到关于数据库模型与 CloudKit 不兼容的错误!但那是另外一回事了。

在 WWDC19 Session、Using Core Data With CloudKit 中,他们提到他们为使用核心 Data/CloudKit 集成的应用程序使用自定义区域。为了查看数据,请从您的 CloudKit 仪表板、select 私有数据库,然后是为您创建的自定义 CloudKit 区域。从那里,select 您的记录类型,然后是查询记录。然后您应该会看到您的数据。

我发现了 CloudKit 仪表板中缺少架构的原因。您应该创建一条记录并保存它,这样您就可以触发同步(也许?)并再次检查 CloudKit 仪表板,您将看到新创建的模式。