iOS开发-关于keychain存储和数据分享(keychain share)group的一些总结

本文总结了iOS开发中keychain的存储和数据分享,特别是keychain share group的应用。通过keychain sharing,同一开发者账号的不同app可以共享数据,解决了设备码问题。配置包括开启keychain sharing,设置.entitlements文件,并注意bundle id的一致性。在使用KeychainItemWrapper时,系统会默认选择keychain-access-groups中的第一个组,而不是显示的第一个。同时提醒,在添加组时,$(AppIdentifierPrefix)代表teamid,无需额外添加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS开发-关于keychain存储和数据分享(keychain share)group的一些总结

是不是要demo先行啊
https://github.com/HRCoderHub/HR-Keychain demo地址,自取

iOS开发中难免会接触keychain,keychain说到底其实就是钥匙串,mac操作经常会遇到的。登录某个网站时都会提示你要不要存储密码等操作,都是对钥匙串进行操作。
这里写图片描述

iOS开发中用到keychain主要用来保存一些比较私密的且无法保存到服务器的数据。
keychain是存在于系统级别的,相对于app是一个相对独立的存储空间,app的更新迭代,删除,系统升级等,都不会影响keychain数据中的保存(系统恢复出厂设置等,恢复型操作除外),所以,keychain在开发中经常被用来存储用户的密码、证书、设备码。
密码的存储比较广泛和简单,不做陈述。由于apple不允许开发者获取设备的UDID 和 IMEI 号,而开发中经常会遇到需要标示设备的需求,所以keychain存储就显的尤为重要。我们在开发中可以获取到apple提供的UUID,这样我们就可以将这个随机生成的UUID存储到keychain中,间接达到设备码的效果。(恢复出厂设置等操作后。设备码会更新)

对keychain的操作可以类比数据库,也同样可以进行增删改查这四个操作。keychain的存储方式类似于dictionary,也是key - value形式

对于每个应用来说,keychain都有两个访问区,私有区和公共区(也就是组模式).
私有区是一个闭合的存储区域,每个应用只能操作自己的私有区,本应用存储的任何数据对其他程序不可见,其他程序也没有权限访问这个私有区。(可以理解为存在钥匙串的沙盒)。
公共区,apple提供给同一个开发者账号开发的多个app之间的一个数据共享模块。现在只局限于同一个开发者账号下的不同app之间数据共享。这个区域是独立于私有区的另外一个数据存储空间。实现多个应用间共同访问一些数据。
这里就主要介绍keychain的数据共享(私有区的数据存储在后边介绍)
公司最近新遇到一个问题,也是设备码的问题,一台设备装了两个同一开发者账号开发的app,这两个app分别生成了不同的设备码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值