美文网首页
iOS 如何利用App Group进行数据共享

iOS 如何利用App Group进行数据共享

作者: 温柔vs先生 | 来源:发表于2020-11-20 16:59 被阅读0次

    需求:公司多个app之间数据共享 如果需要这样的功能,必须要告诉苹果,在开发者中心申请一个groupID(因为我们在开发中对数据的存储都是通过这个id进行的),这样在创建应用的时候才会在Appgroup目录中分配一个我们共享数据的文件

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

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

    img

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

    img

    然后continue->Done就行了

    2.项目中配置

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

    img

    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);
    }
    
    Snip20201030_13.png

    相关文章

      网友评论

          本文标题:iOS 如何利用App Group进行数据共享

          本文链接:https://www.haomeiwen.com/subject/pyorvktx.html