0

我想在我的应用程序中测试 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 中点击“不匹配的脸”按钮时,它会显示 pin 条目视图,并且看起来像我输入的任何内容都被处理为“正确”。

我实际上想要在用户尝试“错误”的 face/touchId/pin 输入尝试时回调,但我不知道如何获取它。

4

0 回答 0