我尝试实施Touch ID登录,但是当用户失败超过最大尝试次数时,我收到此错误"错误域= com.apple.LocalAuthentication Code = -8&#34 ;生物测量被锁定。" UserInfo = {NSLocalizedDescription =生物测量被锁定。}"
我想知道:
谢谢!
答案 0 :(得分:7)
您可以通过使用密码验证用户来解锁生物测定。 只需将此功能粘贴到项目中,然后在使用Touch ID对用户进行身份验证之前调用此函数。
如果返回true,则运行Touch ID身份验证,如果由于生物测定锁定而失败,则会要求用户输入iPhone密码以解锁生物测定。这将在应用程序中发生。
func isBiometryReady() -> Bool
{
let context : LAContext = LAContext();
var error : NSError?
context.localizedFallbackTitle = ""
context.localizedCancelTitle = "Enter Using Passcode"
if (context.canEvaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, error: &error))
{
return true
}
if error?.code == -8
{
let reason:String = "TouchID has been locked out due to few fail attemp. Enter iPhone passcode to enable touchID.";
context.evaluatePolicy(LAPolicy.deviceOwnerAuthentication,
localizedReason: reason,
reply: { (success, error) in
return false
})
return true
}
return false
}
答案 1 :(得分:6)
触摸ID,由于尝试不正确而被锁定,将被锁定,直到用户输入密码为止。所以没有固定的时间。解锁的唯一方法是从此时开始的密码,并且由于显而易见的原因,无法强制解锁。