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

CloudKit + CoreData on iOS and watchOS sync not working

我有一个 iOS + watchOS 应用程序,我想使用相同的数据模型。所以我创建了一个 CoreData 堆栈,并为 NSPersistentCloudKitContainer.

设置了所有内容

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

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

我是不是漏掉了什么?

(我也读了 但没有帮助)

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

同时将 class 生成设置为 Cathegory/Extension 或手动,因为您需要为 iOS 和 WatchOS 实体 class 实现一些不同的实现.如果有人知道如何使用一个 class 并检查哪个 OS 调用实例,那将是完美的。