我的钥匙串一直有一些问题,我想主要是因为我第一次开始使用它时不知道它是如何工作的,我尝试了几种在我的钥匙串中添加数据和字符串密码等的变体,我认为当我删除应用程序时从我的设备它会清除钥匙串...我现在知道钥匙串不是这样工作的,所以希望我能得到一些帮助来清理我钥匙串中的垃圾。
问题是我现在正试图将一些信息传递给我的钥匙串,但收到以下错误
*** 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.'
当我尝试将一些信息传递到我声明的 keychainwrapper 中时,会发生此错误,如下面的代码所示。
[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 时进行进一步研究时,所有这些值都显示在我的调试区域中,但是在没有对其进行任何钥匙串开发的不同设备上尝试相同的代码后,它仍然显示相同价值观。所以我认为它不在设备上,它必须是别的东西......希望这是有道理的......我将继续努力寻找解决方案。