SecItemAdd返回OSStatus代码

我试图写入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"];
}

我首先想到可能设置一个可变数组会是一个问题,但尝试一个字符串也失败了相同的方式。 什么可能是问题的原因?

谢谢,可以。


你不能使用[keychain setObject: forKey:]任意键。 以下将起作用:

[keychain setObject:[[NSMutableArray alloc] init]
          forKey:(__bridge id)kSecValueData]

Apple文档充满了关于此的信息。

链接地址: http://www.djcxy.com/p/14599.html

上一篇: SecItemAdd returning OSStatus code

下一篇: How to properly handle asynchronous database replication?