ARCified を使用してKeychainItemWrapper
いますが、あるキーチェーン アイテムのデータを別のアイテムに移行するのに問題があります。基本的に、アプリ固有のアイテムから共有アイテムにコンテンツをコピーしようとしています。簡潔にするために、そこで失敗するため、ユーザー名のみを入力しました。
KeychainItemWrapper *legacyKeychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"mainLogin" accessGroup:@"C35BXHSRSA.com.foo.bar"];
NSString *legacyUser = [legacyKeychainItem objectForKey:(__bridge id)kSecAttrAccount];
self.migratedKeychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"security" accessGroup:@"C35BXHSRSA.com.foo.security"];
// dies here
[self.migratedKeychainItem setObject:legacyUser forKey:(__bridge id)kSecAttrAccount];
KeychainItemWrapper
メソッドwriteToKeychain
投げで死ぬNSAssert( result == noErr, @"Couldn't update the Keychain Item." );
Keychain Services Referenceでエラーを調べるとわかります
errSecDuplicateItem –25299 アイテムは既に存在します。
文字列をハードコーディング/変更することでこの問題を確認でき、コードは完全に機能しますが、データを移行しようとしています...したがって、同一であることが重要です。問題は、2 つの異なるキーチェーン アイテムの場合にエラーがスローされるのはなぜですか。