具有不同应用标识符的 2 个应用之间的 Icloud 同步

Posted

技术标签:

【中文标题】具有不同应用标识符的 2 个应用之间的 Icloud 同步【英文标题】:Icloud Sync between 2 app having different app identifier 【发布时间】:2012-03-22 10:03:23 【问题描述】:

我有一个应用程序,它有不同的应用程序标识符用于 iphone 和 ipad,我想使用 icloud 同步它们,是否可以为 icloud 中的同一个容器使用不同的应用程序标识符。

【问题讨论】:

嗨 Dushyant Singh 你能分享一下你是如何在两个应用程序之间共享数据的。任何链接或教程有一些帮助或一些步骤! 【参考方案1】:

是的,可以使用 iCloud 在不同的应用程序之间同步数据(不同的应用程序总是有不同的应用程序 ID,不是吗?)。使用您的应用程序的权利来指定他们应该有权访问哪些容器。然后使用通用容器来存储和同步您的文件。

应 Dinesh Kaushik 的要求于 2013 年 10 月 30 日更新:

在 Xcode 中打开您的项目并在 ProjectNavigator 中选择该项目 转到项目的“功能”点击(Xcode 5)并找到 iCloud 部分(应该在顶部) 您可以在此处指定应用应有权访问的所有 Ubiquity Container。 要在应用程序之间共享数据,他们需要共享一个通用的 Ubiquity 容器。因此,添加至少一个 Ubiquity Container 供以下用户使用 所有参与的应用程序。只有一个 Ubiquity 的最简单方法 容器(当然每个应用都一样)

当“连接”到 iCloud 时,您使用以下代码获取 Ubiquity URL:

NSURL *cloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];

使用 nil 作为标识符将返回默认 Ubiquity 容器的 URL。使用具体 ID 获取另一个 Ubiquity 容器的 URL。

Ubiquity Container 基本上只是您设备上的一个文件夹。 iCloud 服务将观察此文件夹并将所有更改传输到其他设备上的同一文件夹。

根据我的经验,关于 iCloud 有一条黄金法则:

不要使用它!

我是认真的。 iCloud 不稳定且不可靠。您的应用程序可能会不时崩溃,您将永远无法找出问题的具体根源。用户会不时问为什么同步不起作用,并责怪您和您的应用程序性能不佳。

iCloud 对于简单的 KeyValueStore 可能没问题,但其他任何事情都是一团糟。不要浪费你的时间。请改用其他云服务,例如 Dropbox。

【讨论】:

感谢您的回答,但我昨天通过测试才弄清楚。 嗨 Andrei Herford 你能分享一下你是如何在两个应用程序之间共享数据的。任何链接或教程有一些帮助或一些步骤!

以上是关于具有不同应用标识符的 2 个应用之间的 Icloud 同步的主要内容,如果未能解决你的问题,请参考以下文章

核心数据同步问题

在应用程序之间共享 iCloud 文档

使用 NSUbiquitousKeyValueStore 在 iOS 应用和 OSX 应用之间共享 iCloud 数据

权利“应用程序标识符”具有配置文件不允许的值

有条件地构建具有不同资产目录的应用程序

有条件地构建具有不同资产目录的应用程序