6

我想在我的钥匙串中保存两个密码(一个应用密码和一个后端密码),我想知道这应该如何工作。
我正在使用带有不同标识符的 KeychainItemWrapper。

KeychainItemWrapper *kcw1 = [[KeychainItemWrapper alloc] initWithIdentifier:id1 accessGroup:nil];
KeychainItemWrapper *kcw2 = [[KeychainItemWrapper alloc] initWithIdentifier:id2 accessGroup:nil];

我正在使用其中一个来保存和检索应用程序或后端引脚。

我用 :

[self.kcw1 setObject:aVerifyCode forKey:(__bridge id) kSecValueData]
[self.kcw2 setObject:aAppPin forKey:(__bridge id) kSecValueData]

但它不起作用 - 结果是 -25299 - 指定的项目已存在于钥匙串中

那么如何在我的钥匙串中保存多个密码呢?

4

1 回答 1

9

好的,我想我知道问题所在了!KeychainItemWrapper 使用 kSecAttrGeneric 的标识符。
但这不是区分条目的方法。如果要保存两个帐户或两个密码

kSecValueData

这将导致重复的整体出现错误(-25299)。
原因是,苹果钥匙串 api 使用

kSecAttrAccount

kSecAttrService

来区分条目。
所以你可以修改 keychainItemWraper 如果你想在这个线程中显示

于 2012-06-15T18:39:14.880 回答