2017-11-07 6 views
9

Können wir die biometrische Authentifizierung mit dem Simulator testen?Können wir Face ID im Simulator testen?

Der iPhone X-Simulator zeigt ein Menü für die Registrierung von Gesichts-IDs an, aber nachdem ich das aktiviert habe, was kann ich tun?

Wie wird es ein Gesicht für die Authentifizierung erkennen?

iPhone X Simulator - Face ID settings

Antwort

6

Der Simulator simuliert nur das Ergebnis einer richtigen und eine Gesichtserkennung versagt, wie es gerade tut mit Touch-ID. Es erkennt Gesichter nicht.

+0

Danke, habe deinen Punkt. Ich arbeite mit biometrischem ersten Mal. Daher müssen wir während der Authentifizierung das Übereinstimmungsfeld drücken, um sich erfolgreich zu authentifizieren. – technerd

1

Wie Sie fragen aber nach dem Aktivieren, was kann ich tun?

Genau wie eine Touch-Id-Registrierung, können Sie Dinge mit Gesichts-Id auf iPhone-X überprüfen. jedoch Simulator einige Einschränkungen wie Appstore haben usw. Mit Face-Id Einschreibung Sie folgende Dinge tun kann -

  • Verwenden Face ID um Einkäufe zu machen.
  • Mit der Gesichts-ID anmelden (In Apps anmelden).
  • Autofill-Kennwörter in Safari.
  • Im iTunes Store, App Store und iBooks Store.

See more at Apple

+0

Danke für Ihre Eingabe, ich werde sicherlich Links für weitere Details überprüfen. – technerd

6

Simulator nicht erkennt ein Gesicht, sondern ermöglicht es Ihnen, eine passende und nicht passende Flächen zu simulieren, wenn Sie Enrolled Option Face ID aktiviert haben.

In Ihrem View-Controller folgenden Code und versuchen, mit FaceID

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") 
         } 
        } 

       }) 
      }) 
     } 


    } 
} 


FaceID Authentifizierung werden Sie zum ersten Mal aufgefordert, FaceID Erkennung für Ihre Anwendung zu ermöglichen.

enter image description here


Jetzt Face ID Einschreibung ermöglichen und führen Sie Ihre Anwendung Face ID Simulation Testing zu testen.

Hier ist das Simulationsergebnis für übereinstimmende und nicht passende Flächen.

Ergebnis zum Abgleichen Gesicht:

enter image description here


Ergebnis für nicht passendes Gesicht:

enter image description here

+0

Kann man diese quadratische Face-ID-Eingabeaufforderung irgendwie anpassen? Ich möchte dort etwas Text hinzufügen. Ist es möglich? –

0

gleiche wie nur 2. von @krunal geben, wenn sollte außerhalb von 1st sein.

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 
    } 
} 
} 
Verwandte Themen