一尘不染

更改权限时,应用在后台崩溃-迅速

swift

我需要提示用户通过UIAlertController更改我的应用程序的相机权限。该警报具有以下操作:

alert.addAction(UIAlertAction(title: "Open Settings", style: .default, handler: { (action) -> Void in

    guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else {
        return
    }

    if UIApplication.shared.canOpenURL(settingsUrl) {
        DispatchQueue.main.async(execute: {
            UIApplication.shared.openURL(settingsUrl)
        })
    }
}))

只要打开设置,它就可以正常工作,但是如果用户更改了Camera权限,则应用会在后台崩溃Message from debugger: Terminateddue to signal 9

他们现在可以打开应用程序,并且权限正确,但是需要从头开始。有谁知道如何解决这个问题?


阅读 256

收藏
2020-07-07

共1个答案

一尘不染

您的应用程序没有崩溃,只是它被iOS强制以新的隐私设置重新启动。因此,当您更改摄像头权限时,这意味着隐私策略已更改,因此如果将应用附加到调试器,则该应用将被杀死,否则它将重新启动。

此外,不仅具有摄像头权限如果用户在某个时候更改了“通讯簿”,“日历”,“提醒”,“摄像头”或“照片”权限,iOS将对应用程序进行SIGKILL。(这是iOS的默认行为)

2020-07-07