我正在尝试在iOS中写入密钥链,当我在我的设备上测试时,每当我尝试写入密钥链时,由于SecItemAdd的结果,我得到了-50错误代码。
我首先尝试自己实现这样一种机制,在多次遇到错误后,我尝试了KeychainItemWrapper,认为我做错了什么。但是使用KeychainItemWrapper也会给出相同的错误代码:( KeychainItemWrapper的ARCified版本,https://gist.github.com/dhoerl/1170641)
line 305: NSAssert( result == noErr, @"Couldn't add the Keychain Item." );
结果是-50,与我自己尝试时得到的结果相同。下面是我如何使用包装器(访问组是我的应用id)
keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"data" accessGroup:@"my.app.identifier"];
purchasedPacks = [keychain objectForKey:@"packs"];
if(purchasedPacks == nil){
[keychain setObject:[[NSMutableArray alloc] init] forKey:@"packs"];
}我最初认为设置可变数组可能会有问题,但尝试字符串也同样失败。问题的原因可能是什么?
谢谢你,肯。
发布于 2013-10-21 17:19:28
您不能对[keychain setObject: forKey:]使用任意键。下面的方法将会起作用:
[keychain setObject:[[NSMutableArray alloc] init]
forKey:(__bridge id)kSecValueData]Apple documentation中充满了关于这方面的信息。
https://stackoverflow.com/questions/17389071
复制相似问题