Проблема аутентификации по отпечатку пальца после обновления до iOS 13 - PullRequest
3 голосов
/ 25 сентября 2019

У меня есть приложение, которому требуется аутентификация по отпечатку пальца при каждом запуске приложения, поэтому я поместил аутентификацию по отпечатку пальца в applicationDidBecomeActive в AppDelegate.

После того, как мой iPad и Xcode обновлены до iOS 13, откроется диалоговое окно отпечатка пальцавсплывающее окно задерживается от 30 секунд до 1 минуты.(Это всплывающее окно непосредственно перед обновлением до iOS 13)

У кого-нибудь была подобная ситуация?

if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error){
    let reason = "Fingerprint Login"

    context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: reason ) { success, error in

    if success {
        DispatchQueue.main.async { [unowned self] in
            print("Success")
        }                    
    } else {  
        print(error?.localizedDescription ?? "Failed to authenticate")
    }
}

1 Ответ

2 голосов
/ 27 сентября 2019

Я читал, что это распространенная ошибка в iOS 13, я думаю, что они исправят ее в следующих версиях, а сейчас просто вызовите context.evaluatePolicy дважды так:

if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error){
    let reason = "Fingerprint Login"

    if #available(iOS 13.0, *) {
        context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: reason ) { (_,_) in }
    }
    context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: reason ) { success, error in
        if success {
            DispatchQueue.main.async { [unowned self] in
                print("Success")
            }
        } else {
            print(error?.localizedDescription ?? "Failed to authenticate")
        }
    }
}
...