- Deprecate old notification ini favour of new
Notification
extension - Address issues with "entity is from different context"
- Add Swift Package Manager support
- Allow individual insert failures
-
Improve logging of errors and activity in order to diagnose bugs and inefficiencies
-
Removed dead code that was duplicated elsewhere anyway
-
Fix syncing of attribute values when changing from a value to nil - Previously these changes were synced to the server, but wouldn't be applied to other clients because null values simply don't exist in CloudKit records
-
Fix conflict resolution block - parameter names were in the wrong order
-
Upload whole records to CloudKit, not partial (only changes) records - This is especially important since because of the changes in the previous commit we will now treat missing values as null.
-
Explicitly enqueue local 'deletes' so that they are cleared after success and aren't repeated forever
-
Combine multiple pending changes to the same object to minimize conflicts after being offline - For example, while offline, if you insert an object, then update it these two changes will now be combined. When you sync to iCloud, a conflict will still occur on the second change set, but the server record will contain all the correct data and will be resolved correctly by default.
-
Don't save iCloud change token until fetched server changes have been saved locally
-
Handle possible errors in recordZoneFetchCompletionBlock (like .changeTokenExpired)
-
Handle CKError.unknownItem (missing in Cloud) with a retry that resends the whole record to the Cloud
-
Handle CKError.userDeletedZone and CKError.zoneNotFound besides just at startup time
-
Add function to resend all local data to cloud in case of new user or deleted zone
-
Syncing will now return a result indicating if any data was sent or received, for use with the background fetch API.
-
Expose required APIs to support Objective-C
-
Removed call to UserDefaults.synchronize
-
Swift 5.0
- Fix concurrency issue with reseting backing store
- Fix missing version number for Carthage (#99)
- Fix examples for Carthage
- Update to Swift 4.2
- Fix isssues with non-iOS examples (#104)
- Make completion handler for
handlePush
optional
- Updates to example app
- Use flexible logging via os_log
- Address issues with concurrent access (Potential crashes)
- Address issues with handling for server change token that caused issues with sync
- Fix error in readme (#100)
- Include platforms in example pod file
- Update osx minimum version
- Update to Swift 4.2
- Add support for WatchOS
- Add shared schemes for Carthage
- Handle purged zone in CloudKit
- Add support for batch deletes
- Add Carthage support
- Include migration fixes
- Include predicate creation fixes
- Include the ability to import object graphs
- Fix #37 - Provide new functions for retrieving predicates that search relationships
- Fix #45 - Ensure migration works by using a fixed store identifier in metadata
- Swift 4.0 support
- Fix #32 - Conflict resolution issues
- Fix #27 - Superfluous logging of conflicts that will be resolved by the framework
- New example code and documentation on conflict resolution
- Fix documentation for iOS 9
- Not released
- Fix infinite loop when reference is missing in cloudkit - #29
- Include
Error
in sync complete notificationuserInfo
- Add description of sync errors
- Fix crash when
count
is invoked against a seam3 backedNSManagedObjectContext
- Fix #20 - Fix potential crash due to a race condition with a remotely deleted object Fix #21
- Dont' set alert body in the
CKNotification
- Fix #19
- Change
registerStore()
toregisterStoreClass()
- Fix warnings under Swift 3.1
- You must now call
SMStore.registerStore()
before attempting to create an SMStore
- Fixed a bug with assigning the incorrect entity to to-one related objects
- Address an issue with the handling of empty relationships
- Correctly create zone and subscription for new zone
- Improve sync when concurrent changes occur
- Add TVOS support and example
- Add option to specify a CloudKit container - This allows sharing containers between targets (e.g. iOS and Mac OS)
- Add Mac OS 10.11 (and later) support
- Include sample Mac OS app
- Return current user identifier from CloudKit check
- Provide ability to remove all existing data from the local store
- Add user id check to
verifyCloudKitConnection
- Check for Cloud Kit login before syncing; fix #3
- Check for deleted record when resolving conflicts; fix #4
- Add optional parameter to
triggerSync
to force complete sync with CloudKit data - Core Data attributes that are enabled for allows external storage will be stored as
CKAssets
in Cloud Kit
- First release