未设置访问权限组时共享的钥匙串项目

时间:2018-12-10 08:23:35

标签: ios keychain

我有两个使用相同架构的应用程序来存储受生物特征认证保护的kSecClassGenericPassword项。

在应用程序初始化之后,当对其他应用程序都有利时,我无法从一个应用程序(errSecInteractionNotAllowed = -25308)检索钥匙串项的内容。

行为是因为即使未设置钥匙串访问组,钥匙串项仍在两个应用程序之间共享。

我在此文件夹中放置了一个示例应用程序和一个视频:https://www.dropbox.com/sh/lk5p1war4c4tids/AACbE-E-z7Pqjx9XHD92RJ6Sa?dl=0

复制步骤(请参见视频附件):

  • 使用提供的钥匙串访问项目

  • 设置捆绑包标识符: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 个答案:

答案 0 :(得分:0)

我们找到了错误的根源。

要解决受生物特征认证保护的钥匙串项目的问题,您必须具有不同 PRODUCT_NAME