iOS扩展和容器App共享数据问题

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)测试;
其它情况未验证!

你可能感兴趣的:(iOS扩展和容器App共享数据问题)