【问题标题】:Authentication failed and Try Face Id Again does nothing身份验证失败,再次尝试人脸 ID 什么也不做
【发布时间】:2018-09-10 11:04:45
【问题描述】:

我只是按照本教程通过 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 运行。 谢谢

【问题讨论】:

    标签: ios swift touch-id face-id


    【解决方案1】:

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

    你可以通过选择Hardware->Face ID->Matching Face/Non-matching Face

    【讨论】:

    • @maphongba008 好的。我刚刚更新了答案。它应该可以解决您的问题。
    • 好的,刚刚尝试过,但很奇怪,我在点击“再次尝试 FaceID”之​​前选择了不匹配的面部,但没有任何反应。点击工作后选择“不匹配”,然后会出现另一个带有“再试一次”按钮的弹出窗口,这个“再试一次”按预期工作。不知道是不是模拟器的问题,因为我这里没有真机。
    • 这是模拟器问题。您的代码应该可以在真实设备上正常运行。
    • 它在我的 iPhoneX 上不起作用。我根本无法使用真实设备陷入 LAError.authenticationFailed 情况。
    • 这在运行 iOS 14 的模拟器设备的 Xcode 12.0.1 中不起作用。
    猜你喜欢
    • 2014-05-29
    • 2014-07-05
    • 2010-11-23
    • 2021-06-19
    • 1970-01-01
    • 2022-01-04
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多