4

我想通过应用程序组功能访问我的自定义键盘扩展中的容器应用程序文件。为此,我在我的 Apple 门户上创建了组 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/

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

4

2 回答 2

-2

要访问包含的应用程序包是沙盒的,不允许从外部应用程序访问。调用[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:YOUR_APP_GROUP_ID]以获取 App Group Shared 容器的 URL。

请注意,使用NSFileCoordinator内部扩展访问包含应用程序共享容器可能会导致死锁。请参阅本文档

于 2015-01-06T13:56:54.080 回答
-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

于 2014-10-13T18:29:11.193 回答