iOS 9とiOS 10でLocalAuthenticationを使用して遊んでいました。 iOS 9では、以下に示すコードを実行して間違った指を使ってtouchIDをロックアウトさせると、Touch IDがロックアウトされた後でもcontext.canEvaluatePolicyコールがtrueを返します。 .evaluatePolicyは、デバイスにデバイスのパスコードを入力するように促します。LOSontext.canEvaluatePolicyは、TouchIDがiOS 9でロックアウトされたときにtrueを返します。
iOS 10では、TouchIDをロックアウトするとcanEvaluatePolicyがfalseを返し、エラーにはTouchIDLockoutを示すコードが含まれます。
TouchIDLockoutがiOS 9で導入されたため、iOS 9でこのエラーコードが表示されることが予想されますが、まだありません。他の誰かがこれを経験しましたか?アップルDevのフォーラムでこれを見上げ
@IBAction func test(_ sender : UIButton) {
let context = LAContext()
var error : NSError? = nil
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "Boom", reply: { (success, error) in
let code = (error as? LAError)?.code.rawValue
sender.setTitle(String(code ?? 2), for: .normal)
})
}
}
}
}