Below is the code to get all the contact information for iPhone ...
-(void)collectContacts { NSMutableDictionary *myAddressBook = [[NSMutableDictionary alloc] init]; ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook); for(int i = 0;i<ABAddressBookGetPersonCount(addressBook);i++) { ABRecordRef ref = CFArrayGetValueAtIndex(people, i); // Get First name, Last name, Prefix, Suffix, Job title NSString *firstName = (NSString *)ABRecordCopyValue(ref,kABPersonFirstNameProperty); NSString *lastName = (NSString *)ABRecordCopyValue(ref,kABPersonLastNameProperty); NSString *prefix = (NSString *)ABRecordCopyValue(ref,kABPersonPrefixProperty); NSString *suffix = (NSString *)ABRecordCopyValue(ref,kABPersonSuffixProperty); NSString *jobTitle = (NSString *)ABRecordCopyValue(ref,kABPersonJobTitleProperty); [myAddressBook setObject:firstName forKey:@"firstName"]; [myAddressBook setObject:lastName forKey:@"lastName"]; [myAddressBook setObject:prefix forKey:@"prefix"]; [myAddressBook setObject:suffix forKey:@"suffix"]; [myAddressBook setObject:jobTitle forKey:@"jobTitle"]; NSMutableArray *arPhone = [[NSMutableArray alloc] init]; ABMultiValueRef phones = ABRecordCopyValue(ref, kABPersonPhoneProperty); for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++) { CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j); NSString *phoneLabel =(NSString*) ABAddressBookCopyLocalizedLabel (ABMultiValueCopyLabelAtIndex(phones, j)); NSString *phoneNumber = (NSString *)phoneNumberRef; NSMutableDictionary *temp = [[NSMutableDictionary alloc] init]; [temp setObject:phoneNumber forKey:@"phoneNumber"]; [temp setObject:phoneLabel forKey:@"phoneNumber"]; [arPhone addObject:temp]; [temp release]; } [myAddressBook setObject:arPhone forKey:@"Phone"]; [arPhone release]; CFStringRef address; CFStringRef label; ABMutableMultiValueRef multi = ABRecordCopyValue(ref, kABPersonAddressProperty); for (CFIndex i = 0; i < ABMultiValueGetCount(multi); i++) { label = ABMultiValueCopyLabelAtIndex(multi, i); CFStringRef readableLabel = ABAddressBookCopyLocalizedLabel(label); address = ABMultiValueCopyValueAtIndex(multi, i); CFRelease(address); CFRelease(label); } ABMultiValueRef emails = ABRecordCopyValue(ref, kABPersonEmailProperty); NSMutableArray *arEmail = [[NSMutableArray alloc] init]; for(CFIndex idx = 0; idx < ABMultiValueGetCount(emails); idx++) { CFStringRef emailRef = ABMultiValueCopyValueAtIndex(emails, idx); NSString *strLbl = (NSString*) ABAddressBookCopyLocalizedLabel (ABMultiValueCopyLabelAtIndex (emails, idx)); NSString *strEmail_old = (NSString*)emailRef; NSMutableDictionary *temp = [[NSMutableDictionary alloc] init]; [temp setObject:strEmail_old forKey:@"strEmail_old"]; [temp setObject:strLbl forKey:@"strLbl"]; [arEmail addObject:temp]; [temp release]; } [myAddressBook setObject:arEmail forKey:@"Email"]; [arEmail release]; } [self createCSV:myAddressBook]; } -(void) createCSV :(NSMutableDictionary*)arAddressData { NSMutableString *stringToWrite = [[NSMutableString alloc] init]; [stringToWrite appendString:[NSString stringWithFormat:@"%@,",[arAddressData valueForKey:@"firstName"]]]; [stringToWrite appendString:[NSString stringWithFormat:@"%@,",[arAddressData valueForKey:@"lastName"]]]; [stringToWrite appendString:[NSString stringWithFormat:@"%@,",[arAddressData valueForKey:@"jobTitle"]]]; //[stringToWrite appendString:@"fname, lname, title, company, phonetype1, value1,phonetype2,value,phonetype3,value3phonetype4,value4,phonetype5,value5,phonetype6,value6,phonetype7,value7,phonetype8,value8,phonetype9,value9,phonetype10,value10,email1type,email1value,email2type,email2value,email3type,email3โโvalue,email4type,email4value,email5type,email5value,website1,websโโite2,website3"]; NSMutableArray *arPhone = (NSMutableArray*) [arAddressData valueForKey:@"Phone"]; for(int i = 0 ;i<[arPhone count];i++) { NSMutableDictionary *temp = (NSMutableDictionary*) [arPhone objectAtIndex:i]; [stringToWrite appendString:[NSString stringWithFormat:@"%@,",[temp valueForKey:@"phoneNumber"]]]; [stringToWrite appendString:[NSString stringWithFormat:@"%@,",[temp valueForKey:@"phoneNumber"]]]; [temp release]; } NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString *documentDirectory=[paths objectAtIndex:0]; NSString *strBackupFileLocation = [NSString stringWithFormat:@"%@/%@", documentDirectory,@"ContactList.csv"]; [stringToWrite writeToFile:strBackupFileLocation atomically:YES encoding:NSUTF8StringEncoding error:nil]; }