web-dev-qa-db-fra.com

Peut-on tester le Face ID dans un simulateur?

Peut-on tester l'authentification biométrique à l'aide du simulateur?

Le iPhone X Simulator affiche un menu pour l’enregistrement d’ID de visage, mais que puis-je faire après l’activer?

Comment il va reconnaître un visage pour l'authentification?

 iPhone X Simulator - Face ID settings

21
technerd

Simulator ne reconnaît pas un visage, mais vous permet de simuler un visage correspondant ou non, si vous avez activé l'option Enrolled à partir de Face ID.


Ajoutez le code suivant à votre contrôleur de vue et essayez avec Face-ID

import LocalAuthentication

class ViewController: UIViewController {


    override func viewDidLoad() {
        super.viewDidLoad()
        localAuthentication()
    }



    func localAuthentication() -> Void {

        let laContext = LAContext()
        var error: NSError?
        let biometricsPolicy = LAPolicy.deviceOwnerAuthenticationWithBiometrics

        if (laContext.canEvaluatePolicy(biometricsPolicy, error: &error)) {

            if let laError = error {
                print("laError - \(laError)")
                return
            }

            var localizedReason = "Unlock device"
            if #available(iOS 11.0, *) {
                if (laContext.biometryType == LABiometryType.faceID) {
                    localizedReason = "Unlock using Face ID"
                    print("FaceId support")
                } else if (laContext.biometryType == LABiometryType.touchID) {
                    localizedReason = "Unlock using Touch ID"
                    print("TouchId support")
                } else {
                    print("No Biometric support")
                }
            } else {
                // Fallback on earlier versions
            }


            laContext.evaluatePolicy(biometricsPolicy, localizedReason: localizedReason, reply: { (isSuccess, error) in

                DispatchQueue.main.async(execute: {

                    if let laError = error {
                        print("laError - \(laError)")
                    } else {
                        if isSuccess {
                            print("sucess")
                        } else {
                            print("failure")
                        }
                    }

                })
            })
        }


    }
}

L'authentification FaceID vous demandera pour la première fois d'autoriser la détection de FaceID pour votre application.

 enter image description here


Activez maintenant l'inscription ID de visage et exécutez votre application pour tester les tests de simulation d'identité de visage.

Voici le résultat de la simulation pour les faces correspondantes et non correspondantes.

Résultat pour faire correspondre le visage:

 enter image description here


Résultat pour une face qui ne correspond pas:

 enter image description here


18
Krunal

Le simulateur simule simplement le résultat d'une reconnaissance faciale correcte et erronée, comme c'est le cas avec Touch ID. Il ne reconnaît pas les visages

7
Tamás Sengel

Comme vous demandez mais après avoir activé cela, que puis-je faire?

Tout comme une inscription tactile, vous pouvez vérifier les choses avec face-id sur iPhone-X . Cependant, le simulateur a certaines limitations, comme Appstore, etc.

  • Utilisez l’identité faciale pour effectuer des achats.
  • Connectez-vous avec ID de visage (Connectez-vous aux applications).
  • Remplir automatiquement les mots de passe dans Safari.
  • Sur iTunes Store, App Store et iBooks Store.

Voir plus chez Apple

1
Jack

identique à donner par @krunal juste 2ème si devrait être en dehors de 1er.

import LocalAuthentication

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    localAuthentication()
}

func localAuthentication() -> Void {

    let laContext = LAContext()
    var error: NSError?
    let biometricsPolicy = LAPolicy.deviceOwnerAuthenticationWithBiometrics

    if (laContext.canEvaluatePolicy(biometricsPolicy, error: &error)) {



        var localizedReason = "Unlock device"
        if #available(iOS 11.0, *) {
            if (laContext.biometryType == LABiometryType.faceID) {
                localizedReason = "Unlock using Face ID"
                print("FaceId support")
            } else if (laContext.biometryType == LABiometryType.touchID) {
                localizedReason = "Unlock using Touch ID"
                print("TouchId support")
            } else {
                print("No Biometric support")
            }
        } else {
            // Fallback on earlier versions
        }


        laContext.evaluatePolicy(biometricsPolicy, localizedReason: localizedReason, reply: { (isSuccess, error) in

            DispatchQueue.main.async(execute: {

                if let laError = error {
                    print("laError - \(laError)")
                } else {
                    if isSuccess {
                        print("sucess")
                    } else {
                        print("failure")
                    }
                }
            })
        })
    }
//This should be outside of if

 if let laError = error {
        print("laError - \(laError)")
        return
     }
 }
}
0
user1636255