2013-06-30 17 views
7

iOS'ta anahtar zincirine yazmaya çalışıyorum ve aygıtımda test ederken anahtarlığa yazmaya çalıştığımda, SecItemAdd sonucu -50 hata kodunu alıyorum.SecItemAdd döndürme OSStatus kodu -50

İlk olarak böyle bir mekanizmayı kendim uygulamaya çalıştım ve birçok kez hatayı aldıktan sonra, yanlış bir şey yaptığımı düşünerek KeychainItemWrapper'ı denedim. (KeychainItemWrapper ait ARCified versiyonunu https://gist.github.com/dhoerl/1170641)

line 305: NSAssert(result == noErr, @"Couldn't add the Keychain Item.");

Sonucu -50, kendim çalıştığı sırada ben alıyorum aynı sonucudur: Ama KeychainItemWrapper kullanarak da bana aynı hata kodu verir. Ben de aynı şekilde başarısız

keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"data" accessGroup:@"my.app.identifier"]; 
purchasedPacks = [keychain objectForKey:@"packs"]; 
if(purchasedPacks == nil){ 
    [keychain setObject:[[NSMutableArray alloc] init] forKey:@"packs"]; 
} 

İlk belki kesilebilir bir dizi ayarlanırken bir sorun olacağını düşünmüşümdür (benim app id olmak erişim grubuyla) sarmalayıcı kullanarak, ancak bir dize çalışıyorum aşağıda görebilirsiniz . Sorunun sebebi ne olabilir?

Teşekkürler, Can.

cevap

3

[keychain setObject: forKey:] için isteğe bağlı anahtarları kullanamazsınız. Aşağıdaki çalışacaktır:

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

Apple documentation bu ilgili bilgi doludur.

İlgili konular