我需要提示用户通过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。
Message from debugger: Terminateddue to signal 9
他们现在可以打开应用程序,并且权限正确,但是需要从头开始。有谁知道如何解决这个问题?
您的应用程序没有崩溃,只是它被iOS强制以新的隐私设置重新启动。因此,当您更改摄像头权限时,这意味着隐私策略已更改,因此如果将应用附加到调试器,则该应用将被杀死,否则它将重新启动。
此外,不仅具有摄像头权限如果用户在某个时候更改了“通讯簿”,“日历”,“提醒”,“摄像头”或“照片”权限,iOS将对应用程序进行SIGKILL。(这是iOS的默认行为)