1、在容器App和扩展的Target设置App Group,假设为 group.com.xxx.xxx
1、共享UserDefaults:
[[NSUserDefaults alloc] initWithSuiteName:@"group.com.xxx.xxx"];
2、共享文件:
NSURL *groupUrl = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.xxx.xxx"];
如果想获取路径的字符串,一定要用:groupUrl.path !
打印出来大概是这个样子:
/private/var/mobile/Containers/Shared/AppGroup/9451D8CC-FC76-4EB3-8BF5-16D6895C818F
不要用:groupUrl.absoluteString!
打印出来大概是这个样子:
file:///private/var/mobile/Containers/Shared/AppGroup/9451D8CC-FC76-4EB3-8BF5-16D6895C818F/
可以用 [NSFileManager defaultManager] fileExistsAtPath 验证。
我是用Xcode Version 8.3 (8E162),iTouch系统是10.3.1(14E304)测试;
其它情况未验证!