キーチェーンに問題がありました。主に、最初に使用したときにどのように機能するかを知らなかったためだと思います。アプリを削除したときのことを考えて、キーチェーンにデータや文字列のパスワードなどを追加するいくつかのバリエーションを試しました私のデバイスからはキーチェーンがクリアされます...これがキーチェーンの仕組みではないことがわかったので、現在キーチェーンにあるジャンクをクリアする助けが得られることを望んでいました.
問題は、キーチェーンに情報を渡そうとしていますが、次のエラーが表示されることです
*** Assertion failure in -[KeychainItemWrapper writeToKeychain], /Users/imac/Documents/Iphone applications/Keystone/Keystone/KeychainItemWrapper.m:268
2013-07-23 11:07:46.086 Keystone[2769:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item.'
このエラーは、以下のコードに示すように、宣言したキーチェーンラッパーに情報を渡そうとすると発生します。
[keychainItem setObject:@"somestringhere" forKey: (__bridge id)kSecAttrService];
キーチェーンの現在のジャンクが新しいアイテムをキーチェーンに正しく追加できないと思うので、コードは実際には問題ないと思います。このようにラッパーを実装します
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"gena" accessGroup:@"KeyStone.com.WHATWHAT.GenericKeychainSuite"];
これはデバッグ領域で確認できます。
ご覧のとおり、 KeyChainItemDataとgenericPasswordQueryは既に 6 ~ 5 個のオブジェクトを持つキーチェーンに含まれていますか?! 変。それから、次のコードを使用してキーチェーンをクリアしようとしました...
[keychainItem resetKeychainItem];
唯一の問題は、これが私を助けるために何の役にも立たないことです。したがって、キーチェーンにあると思われるこれらのKeyChainItemDataおよびgenericPasswordQueryエントリを削除して、正しいエントリを追加できないようにするには、どうすればよいか考えていました。
どんな助けでも大歓迎です。
更新: したがって、KeychainItemWrapper を宣言するときにさらに調査を行うと、これらの値がすべてデバッグ領域に表示されますが、キーチェーンの開発が行われていない別のデバイスで同じコードを試した後も、同じコードが表示されました値。だから私はそれがデバイス上にないことを理解しています...うまくいけばそれは理にかなっています..私は解決策を見つけようとし続けます.