gpt4 book ai didi

ios - 当用户更改联系人访问权限时,iOS 6 中的应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 05:32:45 25 4
gpt4 key购买 nike

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

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();
}

这工作得很好:我能够读取联系人信息,当用户拒绝访问时,应用程序会做出相应的 react 。

但是,如果用户:

  1. 允许在应用中访问联系人,
  2. 退出应用,
  3. 转至“设置”->“隐私”->“通讯录”并禁用该应用的通讯录访问权限,
  4. 运行应用,
  5. 当应用在后台运行时,请转至设置并启用应用的联系人访问权限,

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

即使应用程序在启动期间没有运行上述代码,也可以重现崩溃。

这里发生了什么?是否有我应该订阅的回调?

最佳答案

我在自己的应用程序中看到了这一点。我也看到其他人报告了这一点。我很确定这是故意的行为。操作系统会杀死任何对隐私权限更改使用react的后台应用程序。苹果似乎对此采取了大刀阔斧的做法。这不是崩溃(尽管在调试器中运行时可能会出现这种情况)。应用程序会因各种其他原因而被终止。将其添加到原因列表中。这让我们更有理由在完全重新启动应用程序后做好恢复应用程序状态的工作。

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

关于ios - 当用户更改联系人访问权限时,iOS 6 中的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57381101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com