我在 iOS 上的钥匙串确实有问题。
这里是self.keychainItemQuery
:
{
kSecClass = kSecClassGenericPassword;
kSecAttrGeneric = "com.mycompany.player";
kSecMatchLimit = kSecMatchLimitOne;
kSecReturnAttributes = kCFBooleanTrue;
}
当我做
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)self.keychainItemQuery, &attributes);
我明白了
status == errSecItemNotFound
好吧,这里是self.keychainItemData
:
{
kSecAttrAccount = "";
kSecClass = kSecClassGenericPassword;
kSecAttrDescription = "";
kSecAttrGeneric = "com.mycompany.player";
kSecAttrLabel = "";
kSecValueData = <35663636 65623135 64303139 65363535>;
}
但是当我这样做时
OSStatus result = SecItemAdd((__bridge CFDictionaryRef)dictionary, NULL);
我明白了
result == errSecDuplicateItem
我以为钥匙链物品被锁掉了kSecAttrGeneric
。上面的查询在代码中的其他点找到钥匙串项。我觉得我错过了一些关于为什么这不起作用的细节。