Как получить доступ к контактам iOS, "найденным в приложениях"?
У меня есть приложение, которое использует Contacts Framework для получения информации о контактах пользователя. Если я запускаю приложение Apple Contacts и выполняю поиск некоторых пользователей, я получаю данные о контактах, "найденных в других приложениях", таких как Mail. Однако, когда я пытаюсь получить все контакты в коде, я не получаю этих пользователей.
Я получаю контактную информацию, используя следующий код:
let store = CNContactStore()
store.requestAccess(for: .contacts) { (success, error) in
if success == true {
let keysToFetch: [CNKeyDescriptor] = [
CNContactFormatter.descriptorForRequiredKeys(for: .fullName),
CNContactEmailAddressesKey as CNKeyDescriptor,
CNContactPhoneNumbersKey as CNKeyDescriptor,
CNContactInstantMessageAddressesKey as CNKeyDescriptor,
CNContactPostalAddressesKey as CNKeyDescriptor,
CNContactThumbnailImageDataKey as CNKeyDescriptor]
let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)
fetchRequest.mutableObjects = true
fetchRequest.unifyResults = true
fetchRequest.sortOrder = .userDefault
do {
try store.enumerateContacts(with: fetchRequest, usingBlock: { (contact, stop) -> Void in
// Process results here...
} catch {
}
}
Ниже приведен скриншот пользовательских данных в приложении "Контакты", которые НЕ отображаются в возвращаемых данных. Обратите внимание, что эти данные также не отображаются в приложении "Контакты", если я просто прокручиваю их туда, где они должны быть. Они только там, когда я делаю поиск.
Кто-нибудь знает, как получить доступ к этим контактам, "найденным в других приложениях" с помощью Contacts Framework?