[swift] 연락처(Contacts) 앱에서 주소록 가져오기

iOS 앱을 개발 중이거나 Swift로 iOS 앱을 개발하려는 경우, 연락처(Contacts) 앱에서 주소록을 가져와야 하는 경우가 발생할 수 있습니다. Swift를 사용하여 Contacts 프레임워크를 활용하여 간단하게 주소록을 가져올 수 있습니다.

연락처 앱 접근 권한 요청

먼저 연락처 앱에 접근하기 위해서는 Info.plist 파일에 NSContactsUsageDescription 키를 추가하여 사용자에게 권한을 요청해야 합니다. 이를 통해 사용자로부터 연락처 앱 접근에 대한 권한을 얻을 수 있습니다.

<key>NSContactsUsageDescription</key>
<string>연락처에 접근하여 주소록을 가져오기 위해 권한이 필요합니다.</string>

연락처 데이터 가져오기

아래의 Swift 코드를 활용하여 CNContactStore 클래스를 사용하여 연락처 데이터를 가져올 수 있습니다.

import Contacts

let store = CNContactStore()

store.requestAccess(for: .contacts) { (granted, error) in
    if granted {
        let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey]

        let request = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])

        do {
            try store.enumerateContacts(with: request, usingBlock: { (contact, stop) in
                // 가져온 연락처 데이터 활용
                let firstName = contact.givenName
                let lastName = contact.familyName
                let phoneNumber = contact.phoneNumbers.first?.value.stringValue

                // 가져온 데이터 활용 예시 - 로그 출력
                print("이름: \(firstName) \(lastName), 전화번호: \(phoneNumber ?? "없음")")
            })
        } catch {
            // 오류 처리
            print("연락처 가져오기 오류: \(error.localizedDescription)")
        }
    } else {
        // 권한이 거부된 경우 처리
    }
}

위의 코드는 Contacts 프레임워크를 사용하여 연락처 앱에서 사용자의 주소록을 가져오는 방법을 보여줍니다. CNContactStore를 사용하여 연락처 데이터를 가져와서 활용할 수 있습니다.

사용자의 연락처를 가져올 때, 사용자에게 권한을 요청하고, 가져온 데이터를 활용하여 필요에 맞게 사용할 수 있습니다.


참고 문헌: