1

アプリで Touch ID を使用しています。

  • Touch ID 指紋スキャンが 3 回連続して失敗すると、Application retry limit exceeded.エラーが発生します。
  • Touch ID 指紋スキャンがさらに 2 回失敗すると、Biometry is locked out.エラーが発生します。

バイオメトリからロックアウトされた後、パスコードを入力する必要があります。不思議なことに、パスコードが正しく入力されていれば、これはコールバックにつながりません。代わりに、バイオメトリを再試行するように求められます。successevaluatePolicy

バイオメトリからロックアウトされた後、パスコードが正しく入力されたという通知を受け取るにはどうすればよいですか?

4

1 に答える 1

2

私が言及していることに慣れるための本当に良い方法は、Apple が提供したこのプロジェクトを使用することです: Using Touch ID with Keychain and LocalAuthentication

ユーザーに Touch ID 認証を求める方法は 2 つあります。それぞれに長所と短所があります。

  1. -[LAContext evaluatePolicy:localizedReason:reply:].

これにより、Touch ID 認証のみをユーザーに要求するようにシステムに求めることができます (正しく設定されている場合)。ここまたは他の場所で繰り返し失敗したためにユーザーがロックアウトされた場合、Touch ID の使用を再度ロック解除する方法としてパスコードを入力するように求められます (私が知る限り)。呼び出しの最初の目的はevaluatePolicy:localizedReason:reply:、ユーザーに Touch ID で認証してもらうことだったので、引き続きユーザーに認証を求めます。

このアプローチのボーナスは、呼び出しから返されるエラーが、何が起こったのか (ユーザーのキャンセルと失敗) についてより説明的であることです。

  1. によって保護されたキーチェーンに何かを保存しますkSecAttrAccessibleWhenPasscodeSetThisDeviceOnly

このオプションにより、興味のあるエクスペリエンスが得られる場合があります。この属性を使用してキーチェーンに何かを保存した後、キーチェーンからコピーしようとすると、より使い慣れた Touch ID プロンプトが表示され、ユーザーは必要に応じてパスコードを入力できます (ただし、 iOS 8.3 Beta で気づいたのですが、最初の試行でプロンプトに「パスコードを入力」オプションが表示されません。

このアプローチの欠点は、ユーザーがプロセスを終了した方法 (何らかの方法で失敗したか、キャンセルを押しただけか) に関係なく、常に失敗エラーが発生することです。

于 2015-04-20T14:51:41.227 に答える