iOS 12 - NSFaceIDUsageDescription внезапно не работает

Я использовал 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?

0 ответов

Когда ваше устройство превышает лимит ошибочных попыток, оно обычно возвращает false. Попробуйте заблокировать устройство, затем разблокируйте его с помощью Face/ Touch ID, и оно снова начнет работать в вашем приложении. Он также должен возвращать код ошибки, почему он не работаетevaluateErrorНадеюсь, это был ваш случай и решил проблему.

Другие вопросы по тегам