iCloud:在iOS和tvOS之间同步键值存储

时间:2016-04-19 13:29:52

标签: ios icloud tvos apple-tv nsubiquitouskeyvaluestore

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

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

我相信我已经正确地遵循了所有步骤:

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

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

2 个答案:

答案 0 :(得分:1)

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

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

enter image description here

答案 1 :(得分:0)

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