iOS 上的 CloudKit + CoreData 和 watchOS 同步不起作用

Posted

技术标签:

【中文标题】iOS 上的 CloudKit + CoreData 和 watchOS 同步不起作用【英文标题】:CloudKit + CoreData on iOS and watchOS sync not working 【发布时间】:2020-11-04 22:56:05 【问题描述】:

我有一个想要使用相同数据模型的 ios + watchOS 应用。所以我创建了一个 CoreData 堆栈,并为NSPersistentCloudKitContainer 设置了所有内容。

我的 iOS 应用程序可以访问 CloudKit 容器,因为我可以从控制台中的日志中读取,但是当我的 watchOS 应用程序想要连接到 CloudKit 容器(与 iOS 应用程序相同的 iCloud.foo.myID)时,我收到一条错误消息 @ 987654324@.

我尝试了几个新容器。我还一次又一次地尝试检查功能窗格上的所有复选框。

我错过了什么吗?

(我还阅读了Core data + CloudKit - sharing between iOS and watchOS companion app,但没有帮助)

【问题讨论】:

【参考方案1】:

我有同样的问题。对我来说,解决方案是为两个应用程序共享 xcdatamodel(在我的情况下,它不是用于观看的独立应用程序,而是扩展程序)。 因此,只需选中为两个应用程序共享此模型的框:

还将类生成设置为 Cathegory/Extension 或 Manual,因为您需要为 iOS 和 WatchOS 实现一些不同的实体类。如果有人知道如何使用一个类并检查哪个操作系统调用了该实例,那将是完美的。

【讨论】:

我选择编写自己的类而不是代码生成,现在它可以工作了。谁能知道默认选项不起作用。谢谢苹果。谢谢 Ku6ep

以上是关于iOS 上的 CloudKit + CoreData 和 watchOS 同步不起作用的主要内容,如果未能解决你的问题,请参考以下文章

我可以在非 iOS 设备上的 Cordova 应用程序中使用 Apple CloudKit JS 吗?

CloudKit 用于我的 iOS 游戏

cloudkit 数据未显示在提交的应用程序 iOS 8.1 中

CloudKit 元数据源本地或远程

CloudKit 记录的本地缓存

数据插入上的核心数据级联