【问题标题】:iCloud: Sync key-value-storage between iOS and tvOSiCloud:在 iOS 和 tvOS 之间同步键值存储
【发布时间】:2016-08-11 17:22:48
【问题描述】:

我有一个在 iOS 和 tvOS 上运行的应用。我已经使用 iCloud 键值存储设置了设置同步:

  • iOS 版本使用 iCloud KVS 同步数据。这工作正常。
  • tvOS 版本使用 iCloud KVS 同步数据。也可以正常工作。
  • 但是,我无法让 iOS 和 tvOS 版本相互同步

我相信我已正确执行所有步骤:

  • 相同的应用 ID,相同的捆绑包 ID。
  • 同一 iCloud 帐户登录所有设备。
  • 权利中的字段com.apple.developer.ubiquity-kvstore-identifier 相同($(TeamIdentifierPrefix)$(CFBundleIdentifier))。
  • 键名相同
  • 两个应用都通过网络同步(不仅仅是本地缓存)。

有没有人让跨 iOS/tvOS 同步工作?这甚至可能吗?谢谢你的建议。

【问题讨论】:

    标签: ios icloud tvos apple-tv nsubiquitouskeyvaluestore


    【解决方案1】:

    在这里为后代回答:交叉同步实际上工作正常,错误实际上在于我们如何处理存储值的序列化和反序列化。在深入研究之前,我们错过了异常。

    【讨论】:

      【解决方案2】:

      我认为 Apple 在这里有问题,因为我可以在 iOS 应用程序和 macOS 应用程序之间共享没有问题,但是当我将相同的程序和权利应用于我的 tvOS 应用程序时,我无法检索共享的键值。我刚刚回答了一个类似的问题,我的完整测试结果可以在这里找到:https://stackoverflow.com/a/36778154/6145996

      在上面,你提到你设置了com.apple.developer.ubiquity-kvstore-identifier,但 CloudKit 也是关于默认容器的。您需要确保您的应用程序也在使用您的主要共享容器。以下是 Apple 的说明:

      【讨论】:

      • 嘿@Dan,感谢您花时间研究这个问题。不幸的是,这似乎是我们的 xml 序列化代码中的一个问题(我们正在序列化的值是一个 xml 字符串)。我们实际上最终让 tvOS 版本正确同步。
      • 只是想补充一点,我根本不使用 CloudKit,所以默认容器问题不会影响它。
      猜你喜欢
      • 1970-01-01
      • 2014-03-01
      • 2014-12-21
      • 2016-10-19
      • 2014-12-13
      • 1970-01-01
      • 2013-08-08
      • 2014-08-31
      • 2014-07-14
      相关资源
      最近更新 更多