ios8扩展和容器应用程序如何共享数据

我无法在iOS 8扩展程序和容器应用程序之间共享数据.
我从开发门户网站和 Xcode设置了这个组,我的权利包括:
<dict>
    <key>com.apple.security.application-groups</key>
    <array>
        <string>my group id</string>
    </array>
</dict>

苹果文档中建议使用的解决方案[[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文件,但是当我在设备上运行时,扩展程序无法在文件夹中找到任何文件.但是在模拟器中它找到了它并且一切正常.

解决方法

我的解决方案是编辑我的自定义键盘的Info.plist:

NSExtension – > NSExtensionAttributes – > RequestsOpenAccess

是的.

然后删除设备中的键盘并重新添加.在键盘添加页面中,您将找到名为“允许完全访问”的设置,启用它,键盘将访问共享数据.

以上是来客网为你收集整理的ios8扩展和容器应用程序如何共享数据全部内容,希望文章能够帮你解决ios8扩展和容器应用程序如何共享数据所遇到的程序开发问题。

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