NativeScript / NativeScript/plugins

[@nativescript/biometrics] Issue with verifyBiometric on iOS 18.3.1: Unable to Retrieve Stored Secret When Using pinFallback

Abierto
#616 1 comentario 1 reacción 1 asignado Ver en GitHub

@NathanWalker ya está trabajando en esto.

Desde el 28/2/2025.

in progress
Lenguaje dominante
TypeScript
Estrellas
206
Forks
123
Merge medio
2 d 1 h
PR fusionados (30 d)
1

Descripción

Description

While using iOS 18.3.1, I encountered an issue with the verifyBiometric function where enabling pinFallback prevents retrieval of the stored secret.

Code Example
this._BiometricAuth.verifyBiometric({
    title: 'Authenticate',
    message: 'Verify your identity to access your account.',
    keyName: 'MyKeyName',
    pinFallback: true, // Allow fallback to device passcode
    ios: {
      fetchSecret: true, // Retrieve stored secret upon successful authentication
      customFallback: false, // Do not use custom fallback logic
    },
});
Expected Behavior
  • If Face ID fails, the system should prompt the user to enter their device passcode.
  • After successful authentication (via Face ID or passcode), the stored secret should be retrievable.
Actual Behavior
  • When pinFallback: true, the stored secret is not accessible.
  • This behavior seems to be affected by customFallback: false, even though I intend for it to behave similarly to Face ID authentication.
  • If pinFallback: false, Face ID failures result in an error (SecItemCopyMatching), and the passcode prompt does not appear.
Question

Is there a way to retrieve the stored secret when pinFallback: true and customFallback: false? Am I missing a configuration that allows proper fallback behavior while still being able to fetch the stored secret?

Environment
  • iOS Version: 18.3.1
  • Biometric Authentication Library: @nativescript/biometrics: "1.3.1"
  • Device Model: iPhone 15 Pro, iPhone 16

Any guidance or workarounds would be greatly appreciated!

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.