iOS Keychain钥匙串,应用间数据共享打造iOS上的全家桶

iOS Keychain钥匙串,应用间数据共享打造iOS上的全家桶

Demo先行:

该demo里有2个工程,你先运行任何一个会存储一个值,再运行另一个会访问之前的app存储的值,并修改。

官方:.html

 

之前博客使用过Keychain,实现了数据删除APP后还能保存,但是并没有实现APP间的共享。

实现APP间的数据共享,主要依赖于在数据存入钥匙串时,使用同一个钥匙串条目。

主要分为两部分:

1.赋予应用对某个钥匙串条目的访问权限。

2.写入时配置钥匙串条目,对kSecAttrAccessGroup的值进行设置。

 

一、APP对钥匙串的访问权限:

(1)未对应用APP的entitlement(授权)进行配置时,APP使用钥匙串存储时,会默认存储在自身BundleID的条目下。

(2)对APP的entitlement(授权)进行配置后,说明APP有了对某个条目的访问权限。

 

钥匙串的可视化效果可参见Mac的APP-钥匙串访问。

 

APP钥匙串访问权限的配置方法:(这里XXXXX模拟器随意,但真机必须为自己开发者账号ID,否则无法通过编译)

1.新建一个Plist文件,在Plist中的数组中添加可以访问的条目的名字(如KeychainAccessGroups.plist),结构如下:

Plist代码: