我们可以使用模拟器测试生物认证吗?iPhone X模拟器显示了一个面孔ID注册菜单,但启用该菜单后,我可以做什么?它将如何识别人脸进行身份验证?
lzfw57am1#
模拟器不能识别人脸,但允许您模拟匹配和不匹配的人脸,如果您已经从Face ID启用Enrolled选项。将以下代码添加到视图控制器并尝试使用Face-ID
Face ID
Enrolled
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身份验证将首次提示您允许对应用进行FaceID检测。
现在启用Face ID注册并运行您的应用以测试Face ID模拟测试。
这是匹配和非匹配面部的模拟结果。匹配面部的结果:
不匹配面部的结果:
lymgl2op2#
模拟器只是模拟人脸识别正确和失败的结果,就像Touch ID一样。它不识别人脸。
x4shl7ld3#
正如您所问 * 但启用后,我能做什么?*就像一个触摸ID注册,你可以验证的东西与脸-ID在iPhone-X.然而模拟器有一些限制,如Appstore等与脸-ID注册,你可以做以下事情-
See more at Apple
b09cbbtk4#
与@krunal给予的相同,只是第二个如果应该在第一个之外。
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 } } }
mctunoxg5#
您可以在UITests文件夹中创建Biometrics.m、Biometrics. h和bridging-header. h文件,并更新UI测试目标以使用该桥接头文件。https://github.com/KaneCheshire/BiometricAutomationDemo
5条答案
按热度按时间lzfw57am1#
模拟器不能识别人脸,但允许您模拟匹配和不匹配的人脸,如果您已经从
Face ID
启用Enrolled
选项。将以下代码添加到视图控制器并尝试使用Face-ID
FaceID身份验证将首次提示您允许对应用进行FaceID检测。
现在启用Face ID注册并运行您的应用以测试Face ID模拟测试。
这是匹配和非匹配面部的模拟结果。
匹配面部的结果:
不匹配面部的结果:
lymgl2op2#
模拟器只是模拟人脸识别正确和失败的结果,就像Touch ID一样。它不识别人脸。
x4shl7ld3#
正如您所问 * 但启用后,我能做什么?*
就像一个触摸ID注册,你可以验证的东西与脸-ID在iPhone-X.然而模拟器有一些限制,如Appstore等与脸-ID注册,你可以做以下事情-
See more at Apple
b09cbbtk4#
与@krunal给予的相同,只是第二个如果应该在第一个之外。
mctunoxg5#
您可以在UITests文件夹中创建Biometrics.m、Biometrics. h和bridging-header. h文件,并更新UI测试目标以使用该桥接头文件。https://github.com/KaneCheshire/BiometricAutomationDemo