IOS 8 App Group访问键盘扩展中的容器应用程序文件

时间:2014-08-22 15:01:03

标签: ios8 ios-app-extension custom-keyboard ios-app-group

我想通过App Group功能访问自定义键盘扩展程序中的容器应用程序文件。为此,我在Apple门户网站上创建了Group ID,并将其添加到我的两个目标中(键盘和应用程序) 我已成功访问NSUserDefaults的数据,其工作正常我可以访问数据。但我坚持从容器应用程序获取文件 我有访问网址

NSURL *containerURL = [[NSFileManager defaultManager] 
           containerURLForSecurityApplicationGroupIdentifier:@"group.com.company.app"];

NSURL以下列方式返回网址。

/Users/AxisCyberTech1/Library/Developer/CoreSimulator/Devices/1649BBF4-6615-4E53-BFC9-A3D07F3CA70A/data/Containers/Shared/AppGroup/49A4F24B-30A8-474E-8FFA-072E0DF61CBD/

但此路径无法访问Container源包中的任何文件。 如何访问容器源文件

2 个答案:

答案 0 :(得分:-2)

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

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html#//apple_ref/doc/uid/TP40014214-CH16-SW2

答案 1 :(得分:-2)

要获取对包含应用程序包的访问权限是沙箱,而不是从外部应用程序访问的alloew。致电[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:YOUR_APP_GROUP_ID]以获取应用程序组共享容器的URL。

请注意,使用NSFileCoordinator内部扩展来访问包含app共享容器可能会导致死锁。见this documentation