应享权利文档描述了一种方法,其中单个开发团队生成的多个应用程序可以共享对特定组容器的访问。
我向主应用程序和主应用程序包中包含的助手应用程序添加了权限键。组目录从未创建过,获取路径的方法-- [NSURL containerURLForSecurityApplicationGroupIdentifier:] --实际上并不存在于任何标题中。
我缺少什么来创建一个共享的组容器?
更新:添加应享权利和创建组容器
这是我的主要应用程序和助手应用程序的权利文件。(用实际ID替换TEAM_ID )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>TEAM_ID.com.pinepointsoftware</string>
</array>
</dict>
</plist>我尝试根据dev论坛中的一些信息创建自己的Group容器目录:
NSFileManager *fm = [NSFileManager defaultManager];
NSString *path = [@"~/Library/Group Containers/TEAM_ID.com.pinepointsoftware" stringByExpandingTildeInPath];
if ([fm createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:NULL]) {
[fm createFileAtPath:[path stringByAppendingPathComponent:@"test.txt"] contents:nil attributes:nil];
}在应用程序中执行该操作,在每个沙箱中创建两个不同的目录。
我从Apple中找到了一个示例项目,它将应用程序组用于XPC。我可以通过更改权利和包标识符来使其与我的团队相匹配,但无法获得要共享的组容器。
发布于 2012-08-13 07:59:20
"~“将在沙箱环境中自动转换到容器目录。
因此,一种方法是在"~“后面加上”~“,直到您到达~/Library,然后从它开始创建组容器。
https://stackoverflow.com/questions/11660624
复制相似问题