2017-01-30 12 views
1

Touch IDログインを実装しようとしていますが、最大試行回数を超えて失敗すると、このエラーが発生します"Error Domain = com.apple.LocalAuthentication Code = -8" Biometryがロックアウトされました。 "UserInfo = {NSLocalizedDescription =生体認証がロックアウトされる}」タッチIDはどのくらいの時間ロックされていますか? "バイオメトリはロックアウトされています。"

を私が知りたい:。

  • どのくらいの時間、と私はそれがタッチIDをロックされて確認できますか?
  • パスコードを表示せずにロックを解除することはできますか?
  • ユーザーがパスコードですべての試行に失敗した場合、ロックされたタッチIDの時間はどのくらいですか?またはロックを解除するにはどうすればよいですか?

ありがとう!

答えて

3

誤った試行でロックアウトされたタッチIDは、ユーザーがパスコードを入力するまでロックされます。だから設定時間はありません。ロックを解除する唯一の方法は、この時点以降のパスコードになります。明らかな理由から、ロックを解除する方法はありません。

+0

ロックを解除してロックをどのくらい待つのか分かりませんか?私はあなたがバイオメトリクスでX回失敗した後、パスコードでX回失敗すると、iPhoneは両方の方法をロックしますが、ロックを解除するまで何度待たなければならないかはわかりません。 –

+0

電話がロックされている時間は通知されません。その情報を知る方法は全くありません。第二に、あなたがあなたのアプリでこれを判断しようとしているなら、おそらく間違った方法で問題を起こしているでしょう。 – Tander

3

パスコードを使用してユーザーを認証することで、バイオメトリをロック解除できます。 この関数をプロジェクトに貼り付け、Touch IDを使用してユーザーを認証する前にこの関数を呼び出してください。

trueの場合はタッチ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 
    } 
+0

うまく動作します!! –

関連する問題