1

アプリの起動時またはフォアグラウンドに入るときに LAContext を介してユーザーを認証しています。デバイスがロックされている場合、ユーザーは自分自身を承認するように 2 回求められます。その動作を回避するために、context.touchIDAuthenticationAllowableReuseDuration の値を 240 に設定しましたが、期待どおりに動作しません。ユーザーは、自分自身を 2 回認証する必要があります。私が間違っていることは何ですか?


import LocalAuthentication

class AccessControl {

    internal var context = LAContext()
    private var policy: LAPolicy = .deviceOwnerAuthentication
    private var reason: String = NSLocalizedString("auhenticationLocalizedFallbackTitle", comment: "")

    init() {
        context.touchIDAuthenticationAllowableReuseDuration = 240
    }

    func evaluateUserWithBiometricsOrPasscode(success: @escaping () -> Void, error: @escaping () -> Void) {

        guard context.canEvaluatePolicy(policy, error: nil) else {
            error()
            return
        }
        context.evaluatePolicy(policy, localizedReason: reason) { eStatus, eError in
            DispatchQueue.main.async {
                if eStatus {
                    success()
                } else {
                    error()
                }
            }
        }
    }

}
4

1 に答える 1