Я столкнулся с этой же проблемой. Вы не можете помещать произвольные ключи в словарь, вам нужно использовать четко определенные ключи, которые понимает SecItemAdd.
Попробуйте это:
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"password" accessGroup:nil];
[wrapper setObject:@"this is my password" forKey:(id)kSecValueData];
NSLog(@"password: [%@]", [wrapper objectForKey:(id)kSecValueData]);
[wrapper release];