iOS在钥匙串中保存多个密码

Ale*_*der 5 keychain ios5

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

KeychainItemWrapper *kcw1 = [[KeychainItemWrapper alloc] initWithIdentifier:id1 accessGroup:nil];
KeychainItemWrapper *kcw2 = [[KeychainItemWrapper alloc] initWithIdentifier:id2 accessGroup:nil];
Run Code Online (Sandbox Code Playgroud)

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

我用 :

[self.kcw1 setObject:aVerifyCode forKey:(__bridge id) kSecValueData]
[self.kcw2 setObject:aAppPin forKey:(__bridge id) kSecValueData]
Run Code Online (Sandbox Code Playgroud)

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

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

Ale*_*der 8

好吧,我想我知道问题是什么!KeychainItemWrapper使用kSecAttrGeneric的标识符.
但这不是区分条目的人.如果要保存两个帐户或两个密码

kSecValueData

这将导致重复entires的arror(-25299).
原因是,苹果钥匙串api使用

kSecAttrAccount

kSecAttrService

区分条目.
因此,如果您希望在此主题中显示,则可以修改keychainItemWraper