我正在将 EventKit
集成到一个 iOS 应用程序中,但我遇到了一个我无法调试的奇怪崩溃。
在应用程序中,我有一个 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
),我将用户重定向到“设置”应用。当用户随后打开日历授权时,应用程序崩溃并显示相同的消息。
示例代码:https://gist.github.com/rbresjer/4e971c0650e63a53bd81056e962c121b
我的项目包含一个有效的 Info.plist 文件,其中包含日历使用的相关隐私说明。
有什么想法吗?
最佳答案
当您在设置中更改其权限时,这是 iOS 的预期行为。如果打开应用程序,系统将发送“来自调试器的消息:由于信号 9 而终止”,用户必须再次手动启动应用程序。
而且我相信在 SO 上有很多类似的问题。 像这样:App crashes in background while changing permission - swift
关于ios - 在 iOS 应用程序外更改日历权限时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49048251/