0

キーチェーンにアクセスする際の Touch ID の導入により、新しいユーザー アクセス制御機能を検討しています。

これがシナリオです...

  • キーチェーン クエリの新しいアクセス制御オブジェクトを使用して、キーチェーンにユーザー シークレットを書き込みました。
  • 次にこのシークレットを返そうとすると、予想どおり Touch ID / パスコード インターフェイスが表示されます。
  • 次に同じデータをキーチェーンに書き込もうとするときは、まずそれが既に存在するかどうかを確認したいと思います。
  • これは、return data 属性を false に指定した場合でも、Touch ID インターフェイスを表示します。しかし、これは私が望むものではありません。

これは予期された動作ですか、それとも Touch ID インターフェイスを無効にするための特定の属性がありませんか?

4

1 に答える 1

0

あなたが達成しようとしていることは、次のようなことをすることで可能だと思います:

// --- Add this code to your save method

// Adds a new keychain item
let status: OSStatus = SecItemAdd(keychainQuery as CFDictionaryRef, nil)

if status == errSecSuccess {
    println("Keychain Add: \(KeychainResultCode(rawValue: status)?.description)")
    return true
} else if status == errSecDuplicateItem {
    // perform an update
    return self.update(key, data: data)
} else {
    return false
}

上記はあなたのニーズに合っていますか?

于 2014-11-05T13:26:14.727 に答える