iOS 12-NSFaceIDUsageDescription突然不起作用

时间:2018-10-29 13:45:21

标签: ios swift ios12 face-id

我在我的应用程序中使用了NSFaceIDUsageDescription,它正在运行。我从设备上删除了我的应用程序,然后重新上传(将我的设备插入Mac并从xcode运行),现在我没有收到我的应用程序要使用FaceID的警报,该警报为什么不会出现不再吗这使我无法在应用中使用FaceID。

class TouchIDAuth {

    let context = LAContext()

    func canEvaluatePolicy() -> Bool {
        return context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil)
    }

    func authenticateUser(completion: @escaping (NSNumber?) -> Void) {

        guard canEvaluatePolicy() else {
            completion(0)
            return
        }

        context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "Logging in with Touch ID") { (success, evaluateError) in
                                if success {
                                    DispatchQueue.main.async {
                                        completion(nil)
                                    }
                                } else {

                                    let response: NSNumber

                                    switch evaluateError?._code {
                                    case Int(kLAErrorAuthenticationFailed):
                                        response = 2
                                    case Int(kLAErrorUserCancel):
                                        response = 3
                                    case Int(kLAErrorUserFallback):
                                        response = 4
                                    default:
                                        response = 1
                                    }

                                    completion(response)

                                }
        }
    }

}

当我这样做时:

let touchMe = TouchIDAuth()
print(touchMe.canEvaluatePolicy())

打印返回false。

这是我的设备的问题吗?还是使用NSFaceIDUsageDescription?

1 个答案:

答案 0 :(得分:0)

当设备超出不正确尝试次数的限制时,通常会返回false。 尝试锁定您的设备,然后使用面部/触摸ID进行解锁,然后它即可在您的应用中重新开始工作。 它还应返回错误代码,为什么evaluateError失败 希望这是您的情况并解决问题。