I was trying my hand at a new Core Data app with iCloud support today. To my surprise, none of those ubiquitous log messages appeared! You know, the ones that say “Using local storage: 1” and “Using local storage: 0” to indicate which store file is being used. I remember this working flawlessly in Xcode 5 not too long ago.
Turns out that it has to do with the user’s iCloud account, and in what way the App ID is setup. Let me save you some grey hairs and point out the following:
- an App ID compatible with Xcode 5 will work no matter if the user has upgraded to iCloud Drive or not
- an App ID compatible with Xcode 6 and above will ONLY work if the user HAS upgraded to iCloud Drive
You can change the behaviour of the App ID in Member Center, under Identifiers – App ID (see screenshot above). If the App ID is setup for iCloud Drive, and the user’s iCloud account has not been upgraded yet, no notifications will show up in your log files.
Upgrading to iCloud Drive
Note that you must upgrade to iCloud Drive on each device that’s currently in use. Although logic dictates that this upgrade happens on a server somewhere, and upgrading one device would be reflected on all others connected to the same iCloud account, in practice this is not the case: a second device may still not show those notifications unless you head over to Settings – iCloud and explicitly hit the “upgrade” button.
Kudos to Zhang and his findings on this subject: