ios – 在多个应用程序之间共享公共键值存储不起作用

ios – 在多个应用程序之间共享公共键值存储不起作用,第1张

概述我正准备推出其中一个应用程序的第二个版本.我将在以前版本的新捆绑ID下发布此新版本.在之前的版本中,我使用iCloud键值存储来保存一些设置和其他杂项信息.这是v1的我的权利文件: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple 我正准备推出其中一个应用程序的第二个版本.我将在以前版本的新捆绑ID下发布此新版本.在之前的版本中,我使用iCloud键值存储来保存一些设置和其他杂项信息.这是v1的我的权利文件:
<?xml version="1.0" enCoding="UTF-8"?><!DOCTYPE pList PUBliC "-//Apple//DTD PList 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><pList version="1.0"><dict>     <key>get-task-allow</key>     <true/>     <key>com.apple.developer.ubiquity-kvstore-IDentifIEr</key>     <string>$(AppIDentifIErPrefix)$(CFBundleIDentifIEr)</string>     <key>keychain-access-groups</key>     <array>          <string>$(AppIDentifIErPrefix)$(CFBundleIDentifIEr)</string>     </array></dict></pList>

按照“配置多个应用程序的公共键值存储”下的http://developer.apple.com/library/mac/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/iCloudFundametals.html中的说明 *** 作后,这是我的v2权利文件的样子:

<?xml version="1.0" enCoding="UTF-8"?><!DOCTYPE pList PUBliC "-//Apple//DTD PList 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><pList version="1.0"><dict>     <key>com.apple.developer.ubiquity-kvstore-IDentifIEr</key>     <string>$(TeamIDentifIErPrefix)com.companyname.MyApp</string>     <key>get-task-allow</key>     <true/>     <key>keychain-access-groups</key>     <array>          <string>$(AppIDentifIErPrefix)$(CFBundleIDentifIEr)</string>     </array></dict></pList>

根据文档,v2现在应该从与v1相同的键值存储中读取.但是,在执行简单测试时,它会失败.这是我如何重现.

>打开MyApp 1.0.将键入“InstalledVersion1”的bool值“YES”写入键值存储区.

NSUbiquitouskeyvalueStore* store = [NSUbiquitouskeyvalueStore defaultStore];[store setBool:YES forKey:@"InstalledVersion1"];

>打开MyApp 2.0并从商店中读取此值.

NSUbiquitouskeyvalueStore* store = [NSUbiquitouskeyvalueStore defaultStore];[store synchronize];NSLog(@"%@",[store dictionaryRepresentation]);

这打印{}.

它应该打印像{“InstalledVersion1”= 1; }

……但事实并非如此.

我究竟做错了什么?我只需要更耐心地让商店同步吗?

设备日志如果您感兴趣:https://gist.github.com/dlo/688f187c75fd1b1fdc78(在调试器中运行p(voID)[[NSUbiquitouskeyvalueStore defaultStore] _printDeBUGDescription]之后).

解决方法 答案有点荒谬,但在这里,任何其他人都面临着类似的问题.

这就是我做的.

>我的iCloud存储中有一个名为Commondocuments的条目.我已经把它删了.
>我打开了通过蜂窝数据进行iCloud document传输.

经过三天的尝试,事实证明,iCloud存储中的一个不起眼的项目和看似无关的设置是解决问题的原因.

如果这两件事不适合你,我祝你好运.一帆风顺.

总结

以上是内存溢出为你收集整理的ios – 在多个应用程序之间共享公共键值存储不起作用全部内容,希望文章能够帮你解决ios – 在多个应用程序之间共享公共键值存储不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1104785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存