概括:
安装在支持 iCloud 同步的 iOS(iPhone 4S 或 iPhone 5 - 均已测试)上的应用程序实际上并不与 iCloud 同步。iOS 版本为 6.1.2。
我们正在开发一个应用程序并添加了 iCloud 支持。配置文件在启用 iCloud 的情况下重新创建并存储在设备上。权利在 xcode 中正确配置为使用 iCloud 和键值存储(标识符的值设置为默认值)。我们按照 Apple 的 iCloud 设计指南教程来实现与 iCloud 同步的功能(使用 NSUbiquitousKeyValueStore 类来存储和读取值)。
重现步骤:
在 iPhone 4S 或 5(安装了 iOS 6.1.2)上使用支持 iCloud 的应用程序(处于开发模式或从 App Store 安装的应用程序)。转到设置 > iCloud > 文档和数据并启用文档和数据并禁用使用蜂窝数据。尝试将应用程序与 iCloud 一起使用。数据不会在设备之间同步。我们也尝试如下:运行应用程序,将值存储到 iCloud,删除应用程序,重新安装应用程序,运行应用程序,无法从 iCloud 检索值。
关闭 iPhone 并重新打开。转到设置 > iCloud > 文档和数据并启用使用蜂窝数据。
现在运行应用程序并启用 iCloud 并将值存储在 iCloud 中。该值是从 iCloud 同步的……一切正常。
预期成绩:
如果禁用使用蜂窝数据并且在设置 > iCloud > 文档和数据中启用了文档和数据,则 iCloud 同步有效。
实际结果:
如果在“设置”>“iCloud”>“文档和数据”中禁用“使用蜂窝数据”,iCloud 同步将不起作用。
笔记:
此外,通知 NSUbiquitousKeyValueStoreDidChangeExternallyNotification 从未触发选择器集,除非在“设置”>“iCloud”>“文档和数据”中启用了“使用蜂窝数据”。
任何人都可以重现相同的行为吗?有人可以让 iCloud 同步与在设置 > iCloud > 文档和数据中禁用的使用蜂窝数据一起工作吗?
提前致谢!