2

概括:

安装在支持 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 > 文档和数据中禁用的使用蜂窝数据一起工作吗?

提前致谢!

4

1 回答 1

1

iCloud 键值存储并不可靠,正如iCloud 设计指南中所述。

由于键值存储限制,数据传播可能会延迟。

从“首选项和设置”指南:

“键值存储旨在存储不经常更改的数据。如果设备上的应用程序对键值存储进行频繁更改,系统可能会延迟某些更改的同步,以尽量减少往返次数“

有时,由于此 KVS 限制,NSUbiquitousKeyValueStoreDidChangeExternallyNotification即使启用了Documents & Data选项和Use Cellular Data选项,也不会触发。

这可能是你的问题。

如果没有,您应该等待 Apple 工作人员回复您的错误报告。(我想您已经报告了一个错误,因为您的问题是 Apple 错误报告格式。)

于 2013-03-14T14:12:56.070 回答