1

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

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

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

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

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

4

2 回答 2

2

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

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

在此处输入图像描述

于 2016-04-21T19:01:21.960 回答
1

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

于 2016-04-22T08:02:59.193 回答