CNContactPicker 授予权限不提示

CNContactPicker grant permission not prompting

我正在更新我的应用程序以使用 CNContacts 而不是 AB。我注意到我没有收到向我的联系人授予权限的提示。在下面的开关中,它正确地告诉我我被拒绝访问 - 但它不会提示我授予它访问权限。此外,它只显示选择器,甚至将所选属性存储到我正在填充的表视图中...

从联系人中获取 phone 号码或电子邮件不需要获得许可吗?我很困惑,如果我是“.Denied”

,为什么我的代码似乎能正常工作
//This code is called when you hit the "add a contact" button on my UI
switch CNContactStore.authorizationStatusForEntityType(.Contacts){
    case .Authorized:
        print("Already authorized")
        presentPicker()
        /* Access the address book */
    case .Denied:
        print("Denied access to address book")

        store.requestAccessForEntityType(.Contacts){succeeded, err in
            guard err == nil && succeeded else{

                return
            }
            self.presentPicker()
        }


    case .NotDetermined:

        store.requestAccessForEntityType(.Contacts){succeeded, err in
            guard err == nil && succeeded else{

                return
            }
        self.presentPicker()
        }
    default:
        print("Not handled")
    }

您无需授权即可使用 CNContactsPickerViewController。是"out of process";它只是工作。实际上,它是位于您的应用程序中的联系人应用程序 — 用户不需要使用联系人应用程序的权限。