Ios iCloud can';t在两个应用程序之间共享数据

Ios iCloud can';t在两个应用程序之间共享数据,ios,share,icloud,nsubiquitouskeyvaluestore,Ios,Share,Icloud,Nsubiquitouskeyvaluestore,我正在使用NSUbiquitousKeyValueStore从iOS应用程序A将数据存储到iCloud,但我无法在iOS应用程序B上获取任何对象。但是,我可以在iOS应用程序A上获取对象。 两个应用程序都具有相同的团队ID,并且都具有相同的通用容器标识符。 我通过XCode 5添加了iCloud功能,它自动创建了授权文件。 我还为两个应用程序ID打开了iCloud选项 以下是我如何从应用程序A设置数据: [[NSUbiquitousKeyValueStore defaultStore] setO

我正在使用NSUbiquitousKeyValueStore从iOS应用程序A将数据存储到iCloud,但我无法在iOS应用程序B上获取任何对象。但是,我可以在iOS应用程序A上获取对象。 两个应用程序都具有相同的团队ID,并且都具有相同的通用容器标识符。 我通过XCode 5添加了iCloud功能,它自动创建了授权文件。 我还为两个应用程序ID打开了iCloud选项

以下是我如何从应用程序A设置数据:

[[NSUbiquitousKeyValueStore defaultStore] setObject:value forKey:key];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];
以下是我在应用程序B上获取数据的方式:

[[NSUbiquitousKeyValueStore defaultStore] synchronize];
[[NSUbiquitousKeyValueStore defaultStore] objectForKey:key];
我不知道这是否重要,但我正在调试模式下运行这两个应用程序。我必须在iTunes上启用iCloud的情况下创建这两个应用程序吗


谢谢

解决了!因此,为了在两个具有相同团队ID的不同应用程序之间共享键值存储,我必须将授权文件中的iCloud键值存储更改为在两个应用程序中相同。 默认情况下,该值为$(TeamIdentifierPrefix)$(CbundleIdentifier),我将其更改为$(TeamIdentifierPrefix)my.company.AppA


希望它能帮助别人=)

这是我的建议。如果这是Xcode 9中的新功能,请查找“为多个应用配置公共键值存储”

Idk,但如果您转到“功能”选项卡并在那里打开iCloud后,您可以选择或创建一个容器。如果您的所有应用都具有此处指定的相同容器,则您可以通过文件系统或核心数据备份数据,并且它们都可以访问iCloud中的相同数据。我知道这是100%正确的,因为我已经做到了,而且效果非常好。

我没有任何键值存储的经验,所以我可能不应该发表评论,但我确实注意到似乎没有任何地方可以输入KV存储的共享标识符。如果你的应用有不同的捆绑ID,它们如何共享同一个KV商店?Drew感谢你的评论,它没有答案,但它帮助我找到了解决这个问题的方法。