未设置访问组时共享的钥匙串项目
Posted
技术标签:
【中文标题】未设置访问组时共享的钥匙串项目【英文标题】:Keychain item shared when access group is not set 【发布时间】:2018-12-10 08:23:34 【问题描述】:我有两个应用程序使用相同的架构来存储受生物特征认证保护的 kSecClassGenericPassword 项。
在应用程序初始化后,我无法从一个应用程序中检索钥匙串项的内容 (errSecInteractionNotAllowed = -25308),而其他应用程序一切正常。
即使没有设置钥匙串访问组,钥匙串项也会在两个应用程序之间共享。
我在这个文件夹中放了一个示例应用和一个视频:https://www.dropbox.com/sh/lk5p1war4c4tids/AACbE-E-z7Pqjx9XHD92RJ6Sa?dl=0
复制步骤(以附件形式查看视频):
使用提供的 Keychain-Access 项目
设置包标识符:App1 -> ch.sysmosoft.debug.Keychain-Access.1
启动 App1
关闭 App1
启动 App1
认证
显示受保护的元素
更改包标识符:App2 -> ch.sysmosoft.debug.Keychain-Access.2
启动 App2
关闭 App2
启动 App2
显示受保护的元素
启动 App1
受保护的元素不可访问 (errSecInteractionNotAllowed)
版本/构建:
Xcode -> 版本 10.1 (10B61)
ios -> 12.1 (16B92)
iPhone 6s(型号 MKQN2ZD/A)
iPad mini(型号 ME276GP/A)
其他信息:
即使 TeamId 不同,也会出现此错误。
我使用此页面中的钥匙串项目唯一标识符What makes a keychain item unique (in iOS)?
感谢您的帮助
【问题讨论】:
【参考方案1】:我们找到了错误的根源。
要解决受生物认证保护的钥匙串项的问题,您必须有一个不同的PRODUCT_NAME
。
【讨论】:
以上是关于未设置访问组时共享的钥匙串项目的主要内容,如果未能解决你的问题,请参考以下文章