Private data sharing using CloudKit
Is there a straightforward way to share private data between two or more users using CloudKit?
Public and private date are obvious, but there doesn’t seem to be a way to allow a group of users to organize their own silo to share data amongst themselves without making it available to all the other users of the system and to the app developer.
I have an academic collaboration app in mind but the simplest example would be private messaging between two users.
I guess one could try to build a public key encryption system on top of CloudKit to achieve that, but that’s not what I’m looking for and would scale poorly beyond two users per group.
- Observe CKRecord deletion via CKSubscription does not work
- Deleting data from cloudkit with swift
- CloudKit compound query (query with OR)
- CKContainer.discoverAllIdentities always fails
- CloudKit records saving progress
- CKFetchNotificationChangesOperation sometimes does not return UPDATE, DELETE notifications
4 Solutions Collect From Internet About “Private data sharing using CloudKit”
At WWDC 2016, Apple introduced CKShare which addresses this use case. As of Jun 13th, 2016, the beta API is public but undocumented. The sharing API is demonstrated in the WWDC 2016 video What’s new with CloudKit, starting at 19:57.
Technically yes, you can share private data between two our more users with CloudKit. While the data store is public, this does not mean that each user has access to the entire public store. Your design can control access to portions of the public database within each app instance.
By developing an app that uses the public database with unique identifiers for groups of users, and zones using CKRecordZoneNotification for managing notifications, you should be able to create a reasonably secure solution. You decide what reasonably secure means.
Here’s a link to Apple’s docs for CKRecordZoneNotification
Using the public database and encrypting the shared content would work. Might not be too much fun because then you would need to share encryption keys.
- Tap gesture is not working in imageView but it working another view
- Design UITableView's section header in Interface Builder
- Avoid UIDatePicker transparency in iOS7
- Appearance proxies / UI_APPEARANCE_SELECTOR in Swift?
- Validation Error: The bundle contains disallowed nested bundles
- Protocol extension doesn't seem to enforce variable in consumer?
- Converting UIImage to MLMultiArray for Keras Model
- swift : Closure declaration as like block declaration
- iOS How to check if currently on phone call
- Xcode crash when refreshing provisioning profiles
- What does the prefix in NSLog mean?
- Issue comparing UIColors in Swift
- NSURLConnection initWithRequest is deprecated
- Convert NSDate to String with a specific timezone in SWIFT
- How to display superscript for third power/cube characters as a string in UILabel?