【问题标题】:Why same iCloud account but got different ubiquityIdentityToken为什么相同的 iCloud 帐户但获得不同的 ubiquityIdentityToken
【发布时间】:2014-01-23 14:58:45
【问题描述】:

我正在尝试实现一个具有iCloud Key-value 存储功能的应用程序。

目前,我正在使用iPhone5siOS7.0.4 和iPhone4 和iOS6.1.1. 两个设备进行测试 你们知道为什么相同的iCloud account(从设置-> iCloud-> 帐户检查)得到两个不同的ubiquityIdentityToken?我猜这就是这两个设备之间数据没有同步的原因(网络访问)。

在 iOS6 上,NSUbiquitousKeyValueStoreDidChangeExternallyNotification 不会触发。

提前致谢!

【问题讨论】:

  • 不同设备上的不同令牌?我认为这是正常的,或者至少是不起眼的。如果您的意思是同一设备上不同时间的不同令牌,那是不同的。
  • 我认为 ubiquityIdentityToken 应该是相同的,只要使用相同的 iCloud 帐户。

标签: ios icloud nsubiquitouskeyvaluestore


【解决方案1】:

它确实在令牌中编码了特定于设备的值。位置 17 和 22 之间的 8 位十六进制数字组在不同的设备或使用不同的 iCloud 帐户时会发生变化。

其余组通常保持不变,跨不同的应用程序、设备或 iCloud 帐户。

【讨论】:

    【解决方案2】:

    ubiquityIdentityToken 仅用于:

    • 确定您的应用是否可以使用 iCloud
    • 确定 iCloud 帐户是否已更改(通过与之前保存的值进行比较)。

    它是不透明的,但符合一些协议。您可以将其保存在本地并将当前值与以前的值进行比较,但这就是它的全部好处。不保证在任何其他情况下都有用。

    不保证在不同设备上相同,即使这些设备使用相同的 iCloud 帐户也是如此。为什么它可能不同没有记录——它可能会以某种方式对特定于设备的值进行编码。无论如何,它不是您可以从一台设备转移到另一台设备并期望仍然有用的东西。这不是它的设计工作方式。

    【讨论】:

    • ubiquityIdentityToken 似乎在与应用程序组共享它的同一设备(iOS 应用程序和 Today Widget 扩展)上的应用程序之间有所不同。 (在 iOS 9.3.5 上测试)
    【解决方案3】:

    这是一种奇怪的行为。在这些情况下,Apple 通常建议在 两台 设备上退出并再次登录(使用相同的 Apple ID)。试试看是否有帮助。此外,请确保在每台设备上安装最新版本的应用(启用 iCloud)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多