5

我只是按照本教程通过 Face ID 对用户进行身份验证,但实际上在身份验证失败后,“再次尝试 Face ID”按钮不起作用,回调未被调用,我不知道为什么。这是代码:

@IBAction func touchIdAction(_ sender: UIButton) {

    print("hello there!.. You have clicked the touch ID")

    let myContext = LAContext()
    let myLocalizedReasonString = "Biometric Authntication testing !! "

    var authError: NSError?
    if #available(iOS 8.0, macOS 10.12.1, *) {
        if myContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
            myContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: myLocalizedReasonString) { success, evaluateError in

                DispatchQueue.main.async {
                    if success {
                        // User authenticated successfully, take appropriate action
                        self.successLabel.text = "Awesome!!... User authenticated successfully"
                    } else {
                        // User did not authenticate successfully, look at error and take appropriate action
                        self.successLabel.text = "Sorry!!... User did not authenticate successfully"
                    }
                }
            }
        } else {
            // Could not evaluate policy; look at authError and present an appropriate message to user
            successLabel.text = "Sorry!!.. Could not evaluate policy."
        }
    } else {
        // Fallback on earlier versions

        successLabel.text = "Ooops!!.. This feature is not supported."
    }


}

在 iPhone X 模拟器上运行 Xcode 9.4.1。谢谢

4

1 回答 1

6

点击Try Face Id Again按钮之前,您必须通知模拟器它是否应该模拟匹配或不匹配的面部。

您可以通过选择Hardware->Face ID->Matching Face/Non-matching Face 来完成

在此处输入图像描述

于 2018-09-10T11:16:53.883 回答