How do I obtain the user's default email address? I need to obtain it for my crash reporter dialog, so the user won't have to fill it out manually.
Asked
Active
Viewed 9,572 times
2 Answers
17
Never mind, I got it. First, I just have to add AddressBook.framework into my Linked Frameworks. Then, this is the code required:
#import <AddressBook/AddressBook.h>
NSString *theEmailAddressWeWantToObtain = @"";
ABPerson *aPerson = [[ABAddressBook sharedAddressBook] me];
ABMultiValue *emails = [aPerson valueForProperty:kABEmailProperty];
if([emails count] > 0)
theEmailAddressWeWantToObtain = [emails valueAtIndex:0];

Enchilada
- 3,859
- 1
- 36
- 69
-
1You may want to use a combo box and populate its pop-up menu with all of the user's email addresses. – Peter Hosey Feb 04 '11 at 02:05
-
1For iOS 6.1 Xcode doesn't like `ABPerson *aPerson = [[ABAddressBook sharedAddressBook] me];`. The protocol must have changed drastically since 2011. – JohnK Jun 21 '13 at 00:08
-
7"me" is only a property on OS X, not iOS – JohnQ Sep 07 '13 at 23:29
-
Does that mean you can't get the users email on iOS? – Ravindranath Akila Mar 31 '14 at 11:58
-
terrible, to be able to autocomplete user's email we should ask for access to address book... – imike Aug 25 '20 at 12:26
1
From "*Address Book Programming Guide for iOS":
Link the Address Book UI and Address Book frameworks to your project.
Important The project will fail to build (with a linker error) if you do not link against both of these framework.
Linking in the Framework without the UI will prevent the sample code from compiling.

EliSKoren
- 81
- 1
- 3
-
The above poster is suggesting that in any project using the Address Book Framework, you should also include Address Book UI. – binary_falcon Dec 06 '13 at 02:27