ABPeoplePickerNavigationController does not display Exchange Global Address List in iOS 7

Originator:beesapps.beesy
Number:rdar://15129945 Date Originated:10/02/13
Status:Open Resolved:
Product:iOS Product Version:7.0
Classification:Data loss Reproducible:Always
 
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
- Access to the Exchange Global Address List seems allowed but does not display any data, just an empty tableView
- Then Tapping the OK button can then be tricky and most users will report a freeze, while it's only impossible to quit the ABPeoplePickerNavigationController

Following Apple release notes for iOS 7 above seed 4, 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.
}

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.

Please advice on how to make this functional again.

Steps to Reproduce:
- create an ABPeoplePickerNavigationController view
- launch it
- this view request access to User's contact
- it list the contact list from the owner
- tap the Groups button in the upper left corner
- it shows all the contacts feeds available
- with an exchange server configured, it shows at the bottom the Global Address List
- Tap on this menu item, it shows a blank tableview

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!