我需要提示用户通过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)
})
}
}))
这可以在打开设置时起作用,但如果用户更改了相机权限,则应用会在后台使用Message from debugger: Terminated due to signal 9
崩溃。
他们现在可以打开应用程序并且权限是正确的,但是他们需要从头开始。有谁知道如何解决这个问题?
答案 0 :(得分:34)
你的应用程序没有因为新的隐私设置而被迫重启iOS。因此,当您更改摄像机权限时,这意味着隐私政策已更改,因此,如果应用程序附加到调试器,它将被终止,否则它将重新启动。
此外,不仅相机权限如果用户在某些时候更改了地址簿,日历,提醒,相机或照片权限,iOS将SIGKILL应用程序。 (它的iOS默认行为)