更新到iOS13后指纹认证问题

Fingerprint authentication problem after updated to iOS 13

我有一个应用程序每次启动时都需要指纹认证,所以我把指纹认证放在AppDelegate的applicationDidBecomeActive中。

在我的 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")
    }
}

我读到这是 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")
        }
    }
}