公告
财富商城
积分规则
提问
发文
2019-01-12 05:28发布
Bombasti
Can we test biometric authentication using the simulator?
The iPhone X Simulator shows a menu for Face ID enrollment, but after enabling that, what can I do?
How it will recognize a face for authentication?
Simulator does not recognise a face but allows you to simulate a matching and non-matching faces, if you've enabled Enrolled option from Face ID.
Enrolled
Face ID
Add following code to your view controller and try with 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") } } }) }) } } }
FaceID authentication will prompt you for first time to allow FaceID detection for your app.
Now enable Face ID enrolment and run your app to test Face ID simulation Testing.
Here is simulation result for matching and non-matching faces.
Result for matching face:
Result for non-matching face:
The simulator just simulates the outcome of a correct and a failed face recognition, just like it does with Touch ID. It does not recognize faces.
same as give by @krunal just 2nd if should be outside of 1st.
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 } } }
As you asking but after enabling that, what can I do?
Just like a touch Id enrolment, You can verify things with face-Id on iPhone-X. However simulator have some limitations like Appstore etc. With face-Id enrolment you can do following things -
See more at Apple
最多设置5个标签!
Simulator does not recognise a face but allows you to simulate a matching and non-matching faces, if you've enabled
Enrolled
option fromFace ID
.Add following code to your view controller and try with Face-ID
FaceID authentication will prompt you for first time to allow FaceID detection for your app.
Now enable Face ID enrolment and run your app to test Face ID simulation Testing.
Here is simulation result for matching and non-matching faces.
Result for matching face:
Result for non-matching face:
The simulator just simulates the outcome of a correct and a failed face recognition, just like it does with Touch ID. It does not recognize faces.
same as give by @krunal just 2nd if should be outside of 1st.
As you asking but after enabling that, what can I do?
Just like a touch Id enrolment, You can verify things with face-Id on iPhone-X. However simulator have some limitations like Appstore etc. With face-Id enrolment you can do following things -
See more at Apple