Reputation: 21
Summary:
Application installed on iOS (iPhone 4S or iPhone 5 - tested on both) that supports iCloud synchronization does actually not synchronize with iCloud. The iOS version is 6.1.2.
We are developing an application and added iCloud support. The provisioning profile was recreated with iCloud enabled and stored on the device. The entitlements were properly configured in xcode to use iCloud and a Key-Value Storage (the values for the identifier are set to defaults). We followed the Apple's iCloud Design Guide tutorial to implement functionality to sync with iCloud (using the NSUbiquitousKeyValueStore class to store and read values).
Steps to Reproduce:
Use an app with iCloud support (in development mode or an app installed from the App Store) on iPhone 4S or 5 (iOS 6.1.2 installed). Go to Settings > iCloud > Documents & Data and have Documents & Data enabled and Use Cellular Data disabled. Try to use the application with iCloud. The data are not synced between devices. We also tried as follows: run the application, store a value to iCloud, delete the application, install the application again, run the app, the value could not be retrived from the iCloud.
Turn off the iPhone and turn it back on. Go to Settings > iCloud > Documents & Data and enable Use Cellular Data.
Now run the application with iCloud enabled and the value stored in the iCloud. The value is synced from the iCloud ... everything is working as it should.
Expected Results:
The iCloud synchronization works if Use Cellular Data is disabled and Document & Data is enabled in Settings > iCloud > Documents & Data.
Actual Results:
The iCloud synchronization will not work if Use Cellular Data is disabled in Settings > iCloud > Documents & Data.
Notes:
Also the notification NSUbiquitousKeyValueStoreDidChangeExternallyNotification has never fired the selector set unles the Use Cellular Data was enabled in Settings > iCloud > Documents & Data.
Could anyone reproduce the same behavior? Could someone make iCloud sync to work with Use Cellular Data disabled in Settings > iCloud > Documents & Data?
Thanks in advance!
Upvotes: 2
Views: 1593
Reputation: 13214
iCloud Key Value Storage is not reliable as it is expressed in iCloud Design Guide.
Data propagation might be delayed because of Key Value Storage throttling.
From the "Preferences and Settings" guide:
"The key-value store is intended for storing data that changes infrequently. If the apps on a device make frequent changes to the key-value store, the system may defer the synchronization of some changes in order to minimize the number of round trips to the server. The more frequently apps make changes, the more likely it is that later changes will be deferred and not show up on other devices right away."
Sometimes, due to this KVS throttling, NSUbiquitousKeyValueStoreDidChangeExternallyNotification
doesn't fire, even if both Documents & Data option and Use Cellular Data option are enabled.
This might be your issue.
If not, you should wait for Apple staff to reply your bug report. (I suppose you have reported a bug, as your question is in Apple Bug Report format.)
Upvotes: 1