我想在我的钥匙串中保存两个密码(一个app pin和一个后端pin),我想知道这应该如何工作。
我使用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 - 指定的项目已经存在于钥匙串中
那么如何在钥匙串中保存多个密码?
答案 0 :(得分:8)
好的,我想我知道问题是什么! KeychainItemWrapper使用kSecAttrGeneric的标识符 但这不是区分条目的人。如果要在
中保存两个帐户或两个密码kSecValueData
这会导致重复的骚扰(-25299) 原因是苹果钥匙串api使用
kSecAttrAccount
和
kSecAttrService
区分条目。
因此,如果您希望在此thread