iOS AppGroups数据共享

需求:公司多个app之间数据共享
注意:此方法只能使用于同一个开发者账号!!!

1.登录开发者账号,创建App Groups

登录开发者账号开发者中心传送门

image

点击App Groups那栏,右上方添加AppGroup
image

然后continue->Done就行了

2.项目中配置

打开你的xcode项目工程,先选中根目录,在target中选中你的工程–>Capabilites(注意:要用到数据共享的工程都要配置)


工程配置.png

3.项目中使用(以NSUserDefaults和NSFileManager为例)

工程一:生成数据部分
#pragma mark - NSUserDefaults
- (void)setAppGroup1
{
    NSUserDefaults *myDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
    [myDefaults setObject:@"value" forKey:@"key"];
    NSLog(@"%@", [myDefaults valueForKey:@"key"]);
}
#pragma mark - NSFileManager
- (void)setAppGroup2{
    //获取分组的共享目录
    NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
    NSURL *fileURL = [groupURL URLByAppendingPathComponent:@"demo.txt"];
    //写入文件
    [@"abc" writeToURL:fileURL atomically:YES encoding:NSUTF8StringEncoding error:nil];
    //读取文件
    NSString *str = [NSString stringWithContentsOfURL:fileURL encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"str = %@", str);
}

工程二:获取共享数据部分
#pragma mark - NSUserDefaults
- (void)getByAppGroup1
{
    NSUserDefaults *myDefaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
    NSString *content = [myDefaults objectForKey:@"key"];
    NSLog(@"%@",content);
}
#pragma mark - NSFileManager
- (void)getByAppGroup2{
    //获取分组的共享目录
    NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
    NSURL *fileURL = [groupURL URLByAppendingPathComponent:@"demo.txt"];
    //读取文件
    NSString *str = [NSString stringWithContentsOfURL:fileURL encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"str = %@", str);
}

至此就结束了,大佬勿喷,菜鸡献上
官方文档附上

你可能感兴趣的:(iOS AppGroups数据共享)