Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 12-NSFaceIDUsageDescription突然不工作_Ios_Swift_Ios12_Face Id - Fatal编程技术网

iOS 12-NSFaceIDUsageDescription突然不工作

iOS 12-NSFaceIDUsageDescription突然不工作,ios,swift,ios12,face-id,Ios,Swift,Ios12,Face Id,我在我的应用程序中使用了NSFaceIDUsageDescription,它正在工作。我从我的设备上删除了我的应用程序并重新上传(将我的设备插入mac并从xcode运行),现在我没有收到我的应用程序要使用FaceID的警报,为什么警报不再出现?这阻止我在应用程序中使用FaceID class TouchIDAuth { let context = LAContext() func canEvaluatePolicy() -> Bool { return

我在我的应用程序中使用了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())
打印结果为假


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

当您的设备超出错误尝试的限制时,它通常返回false。 尝试锁定您的设备,然后使用face/touch ID解锁,它将在您的应用程序中重新开始工作。 它还应该返回一个错误代码,说明为什么它在
evaluateError

希望这是您的情况并解决了问题。

您是否尝试过进行干净的构建?如果它工作得更早,并且没有代码更改,它就停止了,那么这就是我要做的第一件事。另外,您是否尝试过清除派生数据?如果这些都没有帮助,请尝试重新启动Mac/Xcode以及设置-->常规-->重置-->重置位置和隐私(这将重置设备上的所有警告并再次提示)