首页 文章

如何从iOS钥匙串中删除KeyChainItemData和genericPasswordQuery项目

提问于
浏览
2

我的钥匙串遇到了一些问题,我认为主要是因为当我第一次使用它时我不知道它是如何工作的,我尝试了几种将数据和字符串密码等添加到我的钥匙串中的变种,以为当我删除应用程序时从我的设备中它将清除钥匙链...我现在知道这不是钥匙链如何工作所以希望我能得到一些帮助清理现在我的钥匙串中的垃圾 .

问题是我现在正试图将一些信息传递给我的钥匙串但是我收到了以下错误

*** 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"];

我可以在我的调试区域看到这个 .

enter image description here

如你所见 KeyChainItemDatagenericPasswordQuery 已经在我的钥匙串中有6 - 5个对象?!奇怪的 . 从那以后我尝试使用以下代码清除我的钥匙串......

[keychainItem resetKeychainItem];

唯一的问题是这个剂量无助于我 . 所以我想知道我可能需要做什么来删除这些似乎在我的钥匙串中的 KeyChainItemDatagenericPasswordQuery 条目,这些条目阻止我添加正确的条目 .

任何帮助将不胜感激 .

更新:因此,当我在KeychainItemWrapper中声明所有这些值在我的调试区域中显示时,进行进一步的研究,然而在未完成任何钥匙串开发的其他设备上尝试相同的代码后,它仍显示相同的值 . 所以我认为它不是在设备上它必须是别的......希望这是有道理的......我会继续尝试寻找解决方案 .

2 回答

  • 0

    useyourloaf.com上查看这个简短的步骤示例

    它涵盖了简单的iPhone钥匙串访问 . 它包含从钥匙串中搜索,创建,更新和删除项目的示例 .

    您可能还想查看Apple Developer Keychain Services Reference . 你正在寻找的命令是SecItemDelete .

  • 1

    我考虑过这样,我创建了自己的更简单的包装器来访问Keychain https://github.com/reidmain/FDKeychain

    它与NSDictionary非常相似,只有setValue:和objectForKey:方法 .

相关问题