【问题标题】:how to delete KeyChainItemData and genericPasswordQuery items from iOS keychain如何从 iOS 钥匙串中删除 KeyChainItemData 和 genericPasswordQuery 项
【发布时间】:2013-07-22 23:19:23
【问题描述】:

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

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

*** 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 条目。 p>

任何帮助将不胜感激。

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

【问题讨论】:

  • 看看这个之前的帖子。 stackoverflow.com/questions/14086085/…
  • 好的尝试实现这个,但它仍然没有工作。所有这些价值最终仍然存在。我将仔细检查所有内容,看看当前有哪些 var 类型。
  • 我仍然无法访问或删除在 KeyChainItemData 和 genericPasswordQuery 中找到的数据,有人有什么建议吗?

标签: ios keychain keychainitemwrapper


【解决方案1】:

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

它涵盖了简单的 iPhone 钥匙串访问。它提供了从钥匙串中搜索、创建、更新和删除项目的示例。

您可能还想查看 Apple Developer Keychain Services Reference。您要查找的命令是 SecItemDelete。

【讨论】:

  • 好的,谢谢,我现在要查找两个链接,然后慢慢浏览它们。我会让你知道我的进展。
【解决方案2】:

我建议不要使用 KeychainItemWrapper。在为多个项目使用 KeychainItemWrapper 后,我不断发现多个错误和未考虑的边缘情况,因此我创建了自己的更简单的包装器来访问 Keychain https://github.com/reidmain/FDKeychain

它的工作原理与 NSDictionary 非常相似,只有 setValue: 和 objectForKey: 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    相关资源
    最近更新 更多