我正在尝试实现具有iCloud Key-value
存储功能的应用程序。
目前,我正在两台设备上进行测试,iPhone5s
带有iOS7.0.4
和iPhone4具有iOS6.1.1.
你们知道为什么同一个iCloud account
(从"设置"-> iCloud->帐户中检查)会得到两个不同的ubiquityIdentityToken
吗?我想这就是数据没有在这两个设备(网络访问)之间同步的原因。
在iOS6上,NSUbiquitousKeyValueStoreDidChangeExternallyNotification
不会跳闸。
提前感谢!
ubiquityIdentityToken
仅用于:
- 确定 iCloud 是否可用于您的应用。
- 确定iCloud帐户是否已更改(通过与以前保存的值进行比较)。
它是不透明的,但符合一些协议。您可以将其保存在本地并将当前值与以前的值进行比较,但这就是它的全部好处。它不能保证在任何其他情况下都很有用。
不能保证在不同的设备上是相同的,即使这些设备使用相同的iCloud帐户也是如此。为什么它可能不同没有记录 - 它可能会以某种方式编码特定于设备的值。无论如何,它不是您可以从一台设备转移到另一台设备并期望仍然有用的东西。这不是它的设计方式。
它会在令牌中对特定于设备的值进行编码。位置 17 和 22 之间的 8 位十六进制数字组在不同的设备上或使用不同的 iCloud 帐户会发生变化。
其余组通常保持不变,跨不同的应用程序、设备或 iCloud 帐户。
这是奇怪的行为。在这些情况下,Apple 通常建议在两台设备上注销并重新登录(使用相同的 Apple ID)。试试看,看看是否有帮助。此外,请确保在每台设备上安装最新版本的应用程序(启用了iCloud)。