您的位置:首页 > 大数据 > 人工智能

在应用间利用KeyChain共享数据

2014-04-15 14:53 190 查看


在应用间利用KeyChain共享数据

原文地址:点击打开链接

Mac OS可以利用KeyChain保存各应用中用户的账号密码,让用户不用重复输入。其实在iOS中也有KeyChain,也可以用KeyChain在应用间共享数据,只是有一些限制,无法像Mac OS一样开放,也无法让用户手动控制。那么KeyChain到底如何使用呢?

我们可以把KeyChain理解为一个Dictionary,所有数据都以key-value的形式存储,可以对这个Dictionary进行add、update、get、delete这四个操作。对于每一个应用来说,KeyChain都有两个访问区,私有区和公共区。私有区是一个sandbox,本程序存储的任何数据都对其他程序不可见。而要想在将存储的内容放在公共区,需要先声明公共区的名称,官方文档管这个名称叫“keychain access group”,声明的方法是新建一个plist文件,名字随便起,内容如下:



“yourAppID.com.yourCompany.whatever”就是你要起的公共区名称,除了whatever字段可以随便定之外,其他的都必须如实填写。这个文件的路径要配置在 Project->build setting->Code Signing Entitlements里,否则公共区无效,配置好后,须用你正式的证书签名编译才可通过,否则xcode会弹框告诉你code signing有问题。所以,苹果限制了你只能同公司的产品共享KeyChain数据,别的公司访问不了你公司产品的KeyChain。

OK,至此最难的部分就讲完了。访问KeyChain的代码官方文档写得很详细(看这里),还有示例代码,这里我就不多讲了。

最后,有一个小地方容易被忽略。配置好Code Signing Entitlements之后,就不能用team证书编译了,但这会给平时的版本迭代开发带来很大问题。其实仔细看Code Signing Entitlements,可以发现可以对Debug和Release分别配置。Debug模式不配置路径,就解决问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐