0

I have two applications using the same schema to store an kSecClassGenericPassword item protected by a biometric authentication.

After the initializations of the applications, I am not able to retrieve the content of the keychain item from one application (errSecInteractionNotAllowed = -25308) when all is good for the other.

The behaviour is as the keychain item is shared between the two applications even if the keychain access group is not set.

I put a sample app and a video on this folder: https://www.dropbox.com/sh/lk5p1war4c4tids/AACbE-E-z7Pqjx9XHD92RJ6Sa?dl=0

Steps to Reproduce (See the video as attachments):

  • Use the Keychain-Access project provided

  • Set the bundle identifier: App1 -> ch.sysmosoft.debug.Keychain-Access.1

  • Launch App1

  • Close App1

  • Launch App1

  • Authenticate

  • Protected element is presented

  • Change the bundle identifier: App2 -> ch.sysmosoft.debug.Keychain-Access.2

  • Launch App2

  • Close App2

  • Launch App2

  • Protected element is presented

  • Launch App1

  • Protected element is not accessible (errSecInteractionNotAllowed)

Version/Build:

  • Xcode -> Version 10.1 (10B61)

  • iOS -> 12.1 (16B92)

  • iPhone 6s (model MKQN2ZD/A)

  • iPad mini (model ME276GP/A)

Other information:

This bug occurs even if the TeamId is different.

I use the keychain item unique identifier from this page What makes a keychain item unique (in iOS)?

Thanks for your help

Liberitus
  • 115
  • 1
  • 7

1 Answers1

0

We found the source of the error.

To solve the issue with the keychain item protected by biometrical authentication, you must have a different PRODUCT_NAME.

Liberitus
  • 115
  • 1
  • 7