应用程序在更改权限时崩溃 - 快速

Jam*_*mes 15 iphone ios 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)
        })
    }
}))
Run Code Online (Sandbox Code Playgroud)

这在打开设置时确实有效,但如果用户更改了相机权限,则应用程序会在后台崩溃Message from debugger: Terminated due to signal 9.

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

Jay*_*eep 43

你的应用程序没有崩溃它只是被iOS重新启动,使用新的隐私设置.因此,当您更改相机权限时,这意味着隐私政策已更改,因此,如果应用程序附加到调试器将被杀死,否则它将重新启动.

此外,不仅相机权限如果用户在某些时候更改了地址簿,日历,提醒,相机或照片权限,iOS将SIGKILL该应用程序.(这是iOS的默认行为)

  • @Jaydeep,你有解释这种行为的“官方”文档链接吗?谢谢 :) ! (4认同)