在模拟器上使用FaceID和TouchID测试身份验证失败

时间:2019-09-06 10:00:23

标签: ios swift lacontext

我想在我的应用中测试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输入尝试时随时进行回调,但是我不知道如何获得它。

0 个答案:

没有答案