Ios8 IOS 8应用程序组访问键盘扩展名中的容器应用程序文件

Ios8 IOS 8应用程序组访问键盘扩展名中的容器应用程序文件,ios8,ios-app-extension,custom-keyboard,ios-app-group,Ios8,Ios App Extension,Custom Keyboard,Ios App Group,我想通过应用程序组功能访问自定义键盘扩展名中的容器应用程序文件。为此,我在Apple portal上创建了组ID,并将其添加到我的两个目标(键盘和应用程序)中 我已通过NSUserDefaults成功访问数据,工作正常,我可以访问数据。但我一直在从容器应用程序获取文件 我有访问URL的权限 NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGrou

我想通过应用程序组功能访问自定义键盘扩展名中的容器应用程序文件。为此,我在Apple portal上创建了组ID,并将其添加到我的两个目标(键盘和应用程序)中 我已通过
NSUserDefaults
成功访问数据,工作正常,我可以访问数据。但我一直在从容器应用程序获取文件 我有访问URL的权限

NSURL *containerURL = [[NSFileManager defaultManager] 
           containerURLForSecurityApplicationGroupIdentifier:@"group.com.company.app"];
NSURL按以下方式返回URL

/Users/AxisCyberTech1/Library/Developer/CoreSimulator/Devices/1649BBF4-6615-4E53-BFC9-A3D07F3CA70A/data/Containers/Shared/AppGroup/49A4F24B-30A8-474E-8FFA-072E0DF61CBD/
但此路径无法访问容器源捆绑包中的任何文件。
如何访问容器源文件

键盘扩展还有另一个限制。您应该在Info.plist中将RequestsOpenAccess设置为YES,然后它可以访问这些文件


访问包含应用程序包的应用程序是沙盒,不允许从外部应用程序访问。调用
[[NSFileManager defaultManager]ContainerUrlForSecurity应用程序组标识符:您的应用程序组ID]
以获取应用程序组共享容器的URL

请注意,在扩展内使用
NSFileCoordinator
访问包含应用程序共享容器可能会导致死锁。看