我有两个应用程序使用相同的模式来存储受生物认证保护的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)?
谢谢你的帮助