tvOS 上的 iCloud 同步

Posted

技术标签:

【中文标题】tvOS 上的 iCloud 同步【英文标题】:iCloud synchronization on tvOS 【发布时间】:2016-04-19 11:13:58 【问题描述】:

到目前为止,有没有人设法让 iCloud 在 tvOS 上运行?

我正在使用键值存储,它成功地将所有内容保存在 iCloud 中。但是,它不会在 ios-App 和 tvOS-App 之间同步数据。我对这两个应用程序使用相同的包标识符。

有人遇到过同样的问题吗?

【问题讨论】:

【参考方案1】:

因此,Apple 似乎在 tvOS 方面存在问题,因为如果我按照 Apple 关于为多个应用配置通用键值存储的说明进行操作,我可以在和iOS 应用和 macOS 应用,但不是 tvOS 应用,使用完全相同的设置。

以下是我的结果:

我第一次使用的 Apple 指令:

所以,CloudKit 是关于默认的 Container 而不是直接的 App bundle ID。因此,我使用将成为键值共享容器的默认容器设置我的主要 iOS 应用程序。

这是我的主要权利文件: 然后我在默认存储中存储了两个 NSUbiquitousKeyValueStore 对并检索了值:

    NSUbiquitousKeyValueStore.defaultStore().dictionaryRepresentation

因此,在我的 macOS 应用程序中,我也启用了 CloudKit,并删除了默认容器并将其设置为主要 iOS 应用程序容器。然后在 Entitlements 文件中,我手动设置 com.apple.developer.ubiquity-kvstore-identifier 以包含主应用程序的捆绑 ID:

取消选中默认容器并切换Primaries:

这是我的辅助 macOS 权利文件:

然后我运行 macOS 应用程序并 presto,我从主默认键值存储中获取键值对并检索值 easy-peasy:

    NSUbiquitousKeyValueStore.defaultStore().dictionaryRepresentation

如果我随后对我的 tvOS 应用程序进行 SAME EXACT MODIFICATIONS,defaultStore() 将显示为空,我无法将其与 iOS 和 macOS 应用程序共享。

这是我的辅助 tsOS 权利文件:

没有 presto,没有价值

【讨论】:

更新:我采用了与上述完全相同的配置,但将其切换为主要的 tvOS 应用程序,它运行良好,并且我共享相同的键值对。如果我能弄清楚是什么导致一个工作而不是另一个工作,我会重新发布。

以上是关于tvOS 上的 iCloud 同步的主要内容,如果未能解决你的问题,请参考以下文章

在应用升级期间避免 iCloud 同步上的重复数据

iCloud 核心数据未同步第二台设备上的所有记录

手动同步 iCloud

如何删除 iCloud 键值数据

在 iCloud 上下载保存的数据

关于测试 iCloud 同步