Determine si un dispositivo iOS es compatible con TouchID sin configurar el código de acceso

Actualmente estoy desarrollando una aplicación para iOS que permite a los usuarios iniciar sesión en la aplicación usando TouchID, pero primero deben configurar primero una contraseña dentro de la aplicación. El problema es que, para mostrar la opción de contraseña de configuración para habilitar el inicio de sesión de TouchID, necesito detectar si el dispositivo iOS es compatible con TouchID.

Usando LAContext y canEvaluatePolicy (como las respuestas aquíSi el dispositivo admite Touch ID), Puedo determinar si el dispositivo actual es compatible con TouchIDsi el usuario ha configurado el código de acceso en su dispositivo iOS. Aquí hay un fragmento de mi código (estoy usando Xamarin, por lo que está en C #):

static bool DeviceSupportsTouchID () 
{
    if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
    {
        var context = new LAContext();
        NSError authError;
        bool touchIDSetOnDevice = context.CanEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, out authError);

        return (touchIDSetOnDevice || (LAStatus) Convert.ToInt16(authError.Code) != LAStatus.TouchIDNotAvailable);
    }

    return false;
}

Si el usuariono ha configurado la contraseña del dispositivo, authError simplemente devolverá "PasscodeNotSet"error independientemente de si el dispositivo realmente admite TouchID o no.

Si el dispositivo del usuario admite TouchID, quiero mostrar siempre la opción TouchID en mi aplicación, independientemente de si el usuario ha configurado el código de acceso en su dispositivo (solo advertiré al usuario que primero configure el código de acceso en su dispositivo). Viceversa, si el dispositivo del usuario no es compatible con TouchID, obviamente no quiero mostrar la opción TouchID en mi aplicación.

Entonces, mi pregunta es, ¿hay una buena manera de determinar de manera consistente si un dispositivo iOS es compatible con TouchID, independientemente de si el usuario ha configurado el código de acceso en su dispositivo?

La única solución que se me ocurre es determinar la arquitectura del dispositivo (que se responde enDetermine si el dispositivo iOS es de 32 o 64 bits), ya que TouchID solo es compatible con dispositivos con arquitectura de 64 bits. Sin embargo, estoy buscando si hay alguna manera mejor de hacer esto.

¡Gracias de antemano! :)

Respuestas a la pregunta(6)

Su respuesta a la pregunta