2013-06-30 11 views
7

iOSでキーチェーンに書き込もうとしていますが、デバイスでテスト中にキーチェーンに書き込もうとすると、SecItemAddの結果として-50エラーコードが表示されます。SecItemAddがOSStatusコードを返す-

私は最初、このようなメカニズムを自分で実装しようとしましたが、何度もエラーが発生した後、KeychainItemWrapperを試してみました。 (KeychainItemWrapperのARCifiedバージョン、https://gist.github.com/dhoerl/1170641

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

結果は-50、私はそれを自分でしようとしていたときに私はなってきたのと同じ結果である。しかし、KeychainItemWrapperを使用した場合も、私に同じエラーコードを示します。私も同じように失敗した

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

は、私が最初に多分可変配列を設定することが問題になるだろうと思っている(私のアプリのIDであることアクセスグループで)ラッパーを使用しますが、文字列をしようとしているどのようにここでは、 。問題の原因は何でしょうか?

ありがとう、 Can。

答えて

3

[keychain setObject: forKey:]には任意のキーを使用できません。以下は動作します:

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

Apple documentationこのに関する情報がいっぱいです。

関連する問題