草庐IT

errSecItemNotFound

全部标签

iOS 钥匙串(keychain) - 带有 iOS 9.2 beta 3 的 errSecItemNotFound

我使用钥匙串(keychain)来存储敏感数据。自iOS9.2beta3以来,我无法检索从以前版本的iOS(例如iOS9.1)创建的敏感数据。使用SecItemCopyMatching时出现错误errSecItemNotFound。iOS9.1(iOS9.2beta2或iOS7.x/8.x/9.0)没有问题。很奇怪:我的源代码创建了一个新的敏感数据,如果它不存在的话,所以在iOS9.2beta3中我有一个新的敏感数据,但是如果我切换回iOS9.1,我会检索旧的敏感数据,等回到iOS9.2beta3时......当我使用完全相同的查询时,钥匙串(keychain)似乎是重复的...这是我

ios - 钥匙串(keychain):项目报告为 errSecItemNotFound,但在添加时收到 errSecDuplicateItem

这个问题困扰我好久了,希望有大侠能指点一下。本质上,我有一小部分的用户无法将项目保存/更新到钥匙串(keychain)。有问题的控制流程如下:我们使用SecItemCopyMatching检查项目是否存在。这将返回错误代码errSecItemNotFound然后我们尝试通过SecItemAdd添加项目,但这随后返回errSecDuplicateItem。因此,我们有一些用户根本无法更新钥匙串(keychain)项目的子集,要求他们恢复设备以清除钥匙串(keychain)。这显然是一个NotAcceptable解决方法。以前似乎对他们有用,但现在进入了这个不可更新的循环。经过研究,我发现