权利文档描述了一种方法,其中由单个开发团队生成的多个应用程序可以共享对特殊组容器的访问权限
我已将授权密钥添加到主应用程序和主应用程序包中包含的帮助应用程序.永远不会创建组目录,并且获取路径的方法 - [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>
Run Code Online (Sandbox Code Playgroud)
我已经尝试根据开发论坛的一些信息自己创建Group Container目录:
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];
}
Run Code Online (Sandbox Code Playgroud)
在main和helper应用程序中执行它会在每个沙箱中创建两个不同的目录.
我从Apple AppSandboxLoginItemXPCDemo找到了一个示例项目,该项目使用XPC的应用程序组.我可以通过更改权利和捆绑标识符来匹配我的团队,但不能让Group Containers共享.