App Group Share

App Group主要用在两个方面:
1.多个App共享数据文件;
2.App和其Extension共享数据

因为每个App(包括Extension)只能在其沙盒内访问数据,所以App之间是无法进行数据共享的,Group的出现部分解决了这个问题。为什么要说部分而不是全部解决呢?是因为Group是基于创建Group时的Group Id,App只能在同一个开发者账号中相同的Group内相互访问。

让App具有Group的能力很简单:
1.https://developer.apple.com 中创建Group
在Account模块下Identifiers选项卡中找到App Groups选项,点击创建,Group Id有其固定的格式以group开头。

App Group Share_第1张图片
创建Group Id

2.在Xcode中开启Group能力
在Xcode Capabilities下找到App Groups,勾选刚才创建的Group

App Group Share_第2张图片
勾选groups

3.回到developer中查看是否成功配置
在Account模块下Identifiers选项卡中找到App IDs选项,找到在第二部中开启Group能力的App Id,查看App Groups是否成功开启

App Group Share_第3张图片
查看App Id是否成功开启Groups能力

配置完以上信息你的App已具备了在相同Group Id(同一个开发者账号下)中数据共享的能力。

我们只需要使用查找Group文件路径这个方法即可:

NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.xxx"];

返回的路径就是共享资源的目录,我们可以在这个目录下进行资源文件的一系列操作,当然如果考虑到App资源文件缓存的清理的话,Group里其实也是应该考虑到的,我们可以为其创建好一个目录结构便于管理,例如Cache文件夹下是可以随时进行删除的。
如果你在工程中需要频繁使用Group Share,建议将其封装单独的工具类,各个持久化方法预留出接口,便于使用和管理。

从它的安全性方面来说我认为也是一个沙盒机制,在未越狱的状态下是安全的,但越狱之后的安全性可能无法保证。所以,如果要使用Group进行一个多App上登陆密码分享,建议不要使用明文,相比较来说KeyChain的安全机制会更高一些。

你可能感兴趣的:(App Group Share)