联系人和安全&隐私

时间:2013-08-14 04:59:40

标签: macos cocoa osx-mountain-lion contacts

这是我在一小时前左右才知道的事情,但如果您的应用程序试图通过ABAddressBook类访问通讯录(以前的地址簿)数据,当 iOS 应用程序尝试访问“联系人”数据时,系统会提示用户进行确认。那么安全&隐私偏好设置窗格将会更新,您会在隐私列表中看到您的应用程序。

enter image description here

因此,如果您尝试在应用程序被阻止的情况下访问联系人数据,您将收到一条错误,Xcode声称“地址簿访问被拒绝,路径可执行文件...”您可以使用{{1}检查隐私状态在iOS中。 如何确定您的应用程序是否在OS X中具有隐私权限?

此外,如果您有答案,我想知道Mac OS在“隐私”选项卡下存储应用程序列表的位置?我已经检查了用户的首选项文件夹。但我没有看到任何文件。

感谢您的帮助。

// 修改1 // 以下是应用程序尝试使用ABAddressBookGetAuthorizationStatus()访问ABAddressBook时显示的错误输出:

ABAddressBook *addressBook = [ABAddressBook sharedAddressBook];

1 个答案:

答案 0 :(得分:2)

如果用户授予访问权限,您的应用程序可以照常访问ABAddressBook。如果用户拒绝访问,则addressBook的{​​{1}}和sharedAddressBook方法将返回nil。


我认为没有办法避免这种异常(这与文档所说的不匹配)。因此,您可以在尝试将ABAddressBook放入sharedAddressBook块的地方添加该部分代码,并避免在抛出异常时应用程序死亡。