我无法在iOS 8扩展程序和容器应用程序之间共享数据。 我从开发门户和Xcode设置了这个组,我的权利看起来像是:
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>my group id</string>
</array>
</dict>
Apple文档中建议使用[[NSUserDefaults standardUserDefaults]
对我不起作用。
我已经尝试过@Santa Claus在这篇帖子Communicating and persisting data between apps with App Groups中使用
的解决方案[[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"];
圣诞老人的解决方案适用于模拟器但不适用于我的iPhone 4s,有关如何使其在真实设备上运行的任何想法?或者我错过了什么?
一些更新:
[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group id"];
函数返回url,来自容器app和扩展名的两个url看起来都相同,如“ path / private / var / mobile / Containers / Shared / AppGroup / 3DFB9750-A9F3-4C37-BC3C-0D5BF746B 233” 。 我在容器应用程序中的该文件夹中创建了一个json文件,但是当我在设备上运行时,扩展程序无法在文件夹中找到任何文件。但在模拟器中,它找到了很好,一切正常。
答案 0 :(得分:20)
我的解决方案是编辑自定义键盘的Info.plist:
NSExtension - &gt; NSExtensionAttributes - &gt; RequestsOpenAccess
是的。
然后删除设备中的键盘并重新添加。在键盘添加页面中,您将找到名为&#34;允许完全访问&#34;的设置,启用它,键盘将访问共享数据。
答案 1 :(得分:2)
对于键盘扩展,请确保启用RequestsOpenAccess作为heheBear的答案
然后尝试从Setting / Keyoboard中删除并添加键盘
键盘扩展程序不稳定,自beta 4以来性能非常差,包括beta 5
答案 2 :(得分:1)
问题只发生在自定义键盘上,iOS8 beta 2解决了这个问题。