Как получить доступ к контактам в macOS без ошибок - PullRequest
1 голос
/ 14 мая 2019

Попытка получить список контактов из контактов MacOS с помощью Swift в Xcode 10.1. Я получаю ошибку пути.

Я использую рекомендуемый подход и включил ключ конфиденциальности в Info.plist.

func getAllContacts() {
    let status = CNContactStore.authorizationStatus(for: CNEntityType.contacts) as CNAuthorizationStatus
    print(status)

    //   if status == CNAuthorizationStatus.denied {
    //       showAccessContactsDeniedAlert()
    //       return
    //   }
    let contactStore = CNContactStore()

    let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey, CNPostalAddressStreetKey, CNPostalAddressCityKey, CNContactPhoneNumbersKey]
    let request = CNContactFetchRequest(keysToFetch:keysToFetch as [CNKeyDescriptor])
    do {
        try contactStore.enumerateContacts(with: request, usingBlock: { (contact:CNContact, stop:UnsafeMutablePointer<ObjCBool>) -> Void in
            print("\(contact.familyName) \(contact.givenName) ")

        })
    } catch {
        //catch
    }

Вот что я получаю:

2019-05-13 23: 54: 10.586962 + 0200 Показать клиентов [2324: 83437] [по умолчанию] Не удалось загрузить исключения Info.plist (eGPUOverrides) CNAuthorizationStatus
2019-05-13 23: 54: 30.347100 + 0200 Показать клиентов [2324: 83437] Не удалось получить реальный путь для папки блокировки адресной книги: ошибка open () для F_GETPATH.
2019-05-13 23: 54: 30.347101 + 0200 Показать клиентов [2324: 83437] Невозможно открыть блокировку файла: {счетчик рекурсий = 0, name = nil}, fileDescriptor = -1> Ошибка домена = NSPOSIXErrorDomain Code = 14 "Плохо address "UserInfo = {ABFileDescriptor = -1}

...