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

Crash when Calendar permission changes outside iOS app

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

在应用程序中,我有一个 UISwitch 可以启用与日历相关的功能。首次打开开关时,应用程序请求日历授权,工作正常。如果您随后切换到“设置”应用(该应用仍 运行 在后台运行)并禁用日历授权,则该应用会在后台崩溃并显示 Message from debugger: Terminated due to signal 9 且没有任何进一步信息。这发生在模拟器 (iPhone X, iOS 11.2; iPhone 6s, iOS 11.0.1) 和我的 phone (iPhone X, iOS 11.2.6).

反之亦然:未授权时 (.denied) 我将用户重定向到“设置”应用。当用户随后打开日历授权时,应用程序崩溃并显示相同的消息。

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

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

有什么想法吗?

当您在设置中更改其权限时,这是 iOS 的预期行为。如果应用程序被打开,系统将发送 "Message from debugger: Terminated due to signal 9" 并且用户必须再次手动启动应用程序。

而且我相信在 SO 上有很多类似的问题。 像这样: