How to access iCloud as core data for iCloud is deprecated

The CoreData/iCloud integration is deprecated in iOS 10 / macOS Sierra, and there is no replacement (at least so far).

Way forward so far :

  • Use third party framework such as Ensembles : http://www.ensembles.io
  • Use CloudKit, which can be used for that. See this for a help : https://nickharris.wordpress.com/2016/02/09/cloudkit-core-data-nsoperations-introduction/

Note that CoreData/iCloud integration will still be working for some time in the future. Apps that are using it will not suddenly stop working.


Apple just released a new container for Core Data that can sync across devices with iCloud.

Get started here: https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit/setting_up_core_data_with_cloudkit

Note, this requires iOS 13.


You should take a look at the videos from the latest WWDC. Here is something about CloudKit Best Practices and whats new in cloud kit CloudKit really have some nice out of the box solutions and you dont have to bother about security. Also the newest functionality enables you to use notifications for synchronising apps using the same apple id and even beyond, as the user can now opt to share certain data.

Depending how much data you are syncing, NSUbiquitousKeyValueStore.default() is also an option. But only for very less data