使用CloudKit进行私人数据共享

有没有一种直接的方式来使用CloudKit在两个或更多用户之间共享私人数据?

公开和私人date是显而易见的,但似乎没有办法允许一组用户自己组织自己的分享数据,而不让系统的所有其他用户和应用程序开发人员使用它们。

我有一个学术协作的应用程序,但最简单的例子是两个用户之间的私人消息。

我想可以尝试在CloudKit上build立一个公钥encryption系统来实现这个目标,但这并不是我所期望的,并且可以扩展到每个组的两个用户之外。

在2016年的WWDC上,苹果推出了解决这个用例的CKShare 。 截至2016年6月13日,Beta API是公开的,但没有logging。 共享API在WWDC 2016video中展示了CloudKit的新function ,从19:57开始。

简短的回答:是的!

CloudKit共享是在WWDC 2016上引入的。有关“CloudKit新增function”会议的详细概述: https : //developer.apple.com/videos/play/wwdc2016/226/

技术上来说,您可以使用CloudKit在两位更多用户之间共享私人数据。 虽然数据存储是公开的,但这并不意味着每个用户都可以访问整个公用存储。 您的devise可以控制对每个应用程序实例中公共数据库部分的访问。

通过开发一个应用程序,该应用程序使用具有用户组唯一标识符的公用数据库,并使用CKRecordZoneNotification来pipe理通知,您应该能够创build一个合理安全的解决scheme。 你决定什么合理的安全手段。

这是一个链接到苹果的CKRecordZoneNotification文档

使用公共数据库和encryption共享内容将工作。 可能不会太有趣,因为那样你就需要共享encryption密钥。