アプリの起動時またはフォアグラウンドに入るときに 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()
}
}
}
}
}