首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户更改联系人访问权限时,App在iOS 6中崩溃

当用户更改联系人访问权限时,App在iOS 6中崩溃
EN

Stack Overflow用户
提问于 2012-10-10 01:17:03
回答 1查看 10.7K关注 0票数 46

我有一个使用地址簿的应用程序。在iOS 6中运行时,当用户执行需要地址簿访问的操作时,它会运行此代码。

代码语言:javascript
复制
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
{
    ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

    ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
    {
        if (granted)
        {
            showContactChooser();
        }
    });

    CFRelease(addressBookRef);
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized)
{
    showContactChooser();
}
else
{
    showAccessDeniedAlert();
}

这是完美的:我能够读取联系人信息,当用户拒绝访问时,应用程序就会相应地做出反应。

但是,如果用户:

  1. 允许联系人访问应用程序,
  2. 退出应用程序,
  3. 转到Settings->Privacy->联系人并禁用应用程序的联系人访问,
  4. 运行应用程序,
  5. 当应用程序在后台运行时,进入设置并允许应用程序的联系人访问,

该应用程序立即崩溃在main()内,没有异常信息或有意义的堆栈跟踪。我试着打开“所有异常”和[NSException raise]断点,但这并没有给我更多的信息。

即使应用程序在启动过程中没有运行上述代码,也可以复制崩溃。

这里发生了什么事?有我应该订阅的回调电话吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 01:31:31

我在我自己的应用程序里见过这个。我也见过其他人报道这件事。我很确定这是故意的行为。操作系统杀死了任何对隐私权限变化作出反应的后台应用程序。苹果似乎对此采取了一种大锤式的做法。这不是崩溃(尽管在调试器中运行时可能会出现崩溃)。由于其他各种原因,应用程序会被终止。将此添加到原因列表中。这给了我们更多的理由来做一个很好的恢复应用程序的状态,当我们的应用程序完全重新启动。

请注意,此行为适用于所有各种隐私设置,如联系人、照片、麦克风、日历和照相机。

票数 77
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12810638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档