We have the same issue that Sam is having on our App as well.
This happens when the user is trying to import a contact using the ABPeoplePickerNavigationController
and getting to the Groups page:
- Sometimes the title from the navigation controller will contain 2 names: Contacts AND Groups
- Tapping the OK button can then be tricky and most users will report a freeze, while it's only impossible to quit the
ABPeoplePickerNavigationController
- Access to the Exchange Global Address List seems allowed but does not display any data, just an empty tableView
Following Sam's highlight, we thought about expressly requesting user permission to access their Address Book.
Since iOS 6 introduced this, we did not used it for importing contacts as the ABPeoplePickerNavigationController
is handling this itself.
Anyhow, we have been using:
ABAddressBookRef addressBook = ABAddressBookCreate();
__block BOOL accessGranted = NO;
if (ABAddressBookRequestAccessWithCompletion != NULL) { // we're on iOS 6
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
accessGranted = granted;
dispatch_semaphore_signal(sema);
});
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release(sema);
}
else { // we're on iOS 5 or older
accessGranted = YES;
}
if (accessGranted) {
// Do whatever you want here.
}
see here for more information: Programmatically Request Access to Contacts
This does not solve the issue as access was already correctly granted.
We did reset the privacy settings in Settings / General / Reset / Reset Location and Privacy.
Access to the user's contact list is requested correctly as expected but the above mentioned behavior is still the same.
If anyone has any explanation on how to solve this, it would be great.
Regards,