Как получить доступ к контактам 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?

введите описание изображения здесь

0 ответов

Другие вопросы по тегам