日历权限在iOS应用之外更改时崩溃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日历权限在iOS应用之外更改时崩溃相关的知识,希望对你有一定的参考价值。

我在一个ios应用程序中集成EventKit,但我遇到了一个奇怪的崩溃,我无法调试。

在应用程序中,我有一个UISwitch,它启用与日历相关的功能。当交换机第一次打开时,应用程序请求日历授权,这可以正常工作。如果您然后切换到设置应用程序(应用程序仍在后台运行)并禁用日历授权,则应用程序会在背景中使用Message from debugger: Terminated due to signal 9崩溃而无需任何进一步的信息。这种情况发生在模拟器(iPhone X,iOS 11.2; iPhone 6s,iOS 11.0.1)和我的手机(iPhone X,iOS 11.2.6)上。

它也发生了反过来:当没有给出授权时(.denied)我将用户重定向到Settings应用程序。当用户随后打开日历授权时,应用程序将崩溃并显示相同的消息。

示例代码:https://gist.github.com/rbresjer/4e971c0650e63a53bd81056e962c121b

我的项目包含一个有效的Info.plist文件,其中包含日历使用的相关隐私说明。

有任何想法吗?

答案

当您在设置中更改其权限时,这是iOS的预期行为。如果应用程序被打开,系统将发送“来自调试器的消息:由于信号9终止”,用户必须再次手动启动应用程序。

而且我相信SO上有很多类似的问题。像这样:App crashes in background while changing permission - swift

以上是关于日历权限在iOS应用之外更改时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

更改日历隐私时 iOS 7 应用程序崩溃

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

每当我尝试从 Fragment java 文件中更改片段的某些属性时,应用程序就会崩溃

Android Studio - 在片段之间更改时底部导航崩溃

Android Marshmallow:在运行时更改权限会使应用程序崩溃

从片段内请求权限后应用程序崩溃