我们在Keychain中存储了一些用户信息。我们收到报告称,对于某些数据存储在密钥链中的用户,检索失败。
在什么情况下kSecClassGenericPassword属性会失败?
代码:
let query = [
kSecClass as String : kSecClassGenericPassword,
kSecAttrAccount as String : key,
kSecReturnData as String : kCFBooleanTrue!,
kSecMatchLimit as String : kSecMatchLimitOne ] as [String : Any]
var dataTypeRef: AnyObject? = nil
let status: OSStatus = SecItemCopyMatching(query as CFDictionary, &dataTypeRef)store的代码:
func save(key: String, data: Data) -> OSStatus {
let query = [
kSecClass as String : kSecClassGenericPassword as String,
kSecAttrAccount as String : key,
kSecValueData as String : data ] as [String : Any]
SecItemDelete(query as CFDictionary)
return SecItemAdd(query as CFDictionary, nil)
}注意:检索数据的代码可以在一秒内多次调用。这会给钥匙链带来“压力”吗?
发布于 2021-10-02 14:54:40
根据您在创建项目时指定的访问权限,可能无法检索该项目,例如,如果用户没有密码,锁定了手机,关闭或更改了生物识别,或者从备份中恢复了另一部手机上的应用程序。
https://stackoverflow.com/questions/69417923
复制相似问题