我想在我的应用中测试faceId / touchId机制。 我有以下内容:
func auth(){
let context = LAContext()
var error: NSError?
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
var reason: String = Strings.Common.unknownBiometryTip.value
if BiometricService.biometricType() == .touchID {
reason = Strings.Common.touchIDEnterTip.value
}
if BiometricService.biometricType() == .faceID {
reason = Strings.Common.faceIDEnterTip.value
}
context.evaluatePolicy(LAPolicy.deviceOwnerAuthentication, localizedReason: reason) { [weak self] (success, error) in
print("error \(error)")
if let error = error as? LAError, error.errorCode == Int(kLAErrorUserCancel) {
self?.cancelTapped?()
return
}
if success {
self?.authSucceed?()
}
else {
self?.authFailure?()
}
}
}
else {
print("Touch ID neither Face ID not available")
}
}
我实际上无法测试authFailure
块,因为当我在XCode中单击“不匹配的面孔”按钮时,它会显示引脚输入视图,并且看起来像我键入的任何内容都被视为“正确”。
我实际上想在用户有“错误”的face / touchId / pin输入尝试时随时进行回调,但是我不知道如何获得它。