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

标签 ios core-data apple-watch cloudkit

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

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

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

我错过了什么吗?

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

最佳答案

我遇到了同样的问题。我的解决方案是让 xcdatamodel 为两个应用程序共享(在我的例子中,它不是用于 watch 的独立应用程序,而是扩展)。 因此,只需选中为两个应用程序共享此模型的框: enter image description here

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

enter image description here

关于ios - iOS 和 watchOS 上的 CloudKit + CoreData 同步不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64688861/

相关文章:

ios - 如何在选择器 View 中填充 "ArrayYear"?

ios - 如何从iOS中的CNContactProperty获取国家/地区代码

ios - NSPredicate 检查 swift 中对象类的种类

ios - 从实体 A 的给定实例获取实体 B 所有实例的总和

ios - 从 watch os2 在前台打开 iPhone

ios - Watchkit:在动态行中包含两个模板的表格

WatchKit 菜单项不显示

iOS:滑动手势在同一 Controller 内加载不同的数据

ios - 防止 iOS 在几分钟后杀死 App

ios - 如何创建与两个现有对象的核心数据关系