【发布时间】:2012-10-08 17:04:17
【问题描述】:
我在 appstore 上的应用正在访问 iPhone 联系人,用户在 iOS 6 上下载后,它无法访问 iPhone 联系人,但在 iOS 5 上运行正常 问题是苹果在 iOS 6 中添加了新的隐私设置。所以在搜索后我发现我必须在我的代码中执行以下操作才能访问用户联系人:
//in order to test addressbook availability we have to attempt to create an addressbook instance using ABAddressBookCreateWithOptions
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 60000
// Request authorization to Address Book
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef,
^(bool granted, CFErrorRef error) {
if (granted)
[self loadContacts];
});
} else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
// The user has previously given access, add the contact
[self loadContact];
} else {
}
#endif //end iOS6+
//ABAddressBookCreateWithOptions not available or succeeded. return YES;
[self loadContacts];
我现在的问题是在设备上调试时,没有显示警报,我不知道为什么? 我知道上面的代码应该可以正常工作,但只有当应用程序提交到应用商店但我想在提交之前在调试模式下测试它? 有什么建议吗?
感谢您的支持。 谢谢。
【问题讨论】:
-
ABAddressBookGetAuthorizationStatus 始终为 kABAuthorizationStatusAuthorized 即使应用程序是第一次运行!!!!
标签: debugging permissions ios6 contacts