【问题标题】:App crashes in background while changing permission - swift [duplicate]更改权限时应用程序在后台崩溃 - swift [重复]
【发布时间】:2017-10-13 23:00:43
【问题描述】:

我需要通过 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

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

【问题讨论】:

  • 这是否发生在设备中?
  • @KKRocks 这是在实际设备上,是的。
  • @ThatlazyiOSGuy웃 该链接中的顶部回复使它看起来像是预期的行为。你知道这是不是真的吗?
  • @James Yes...这是默认行为。如果您想恢复您的应用程序状态,请按照答案

标签: ios iphone swift


【解决方案1】:

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

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

【讨论】:

  • 好像是这样。感谢您的信息。
  • 我刚刚在打开相机设置时添加了 exit(0)。它工作正常
  • 当使用附加到 Xcode 系统的侧载时:1- 应用程序确实重新启动 2- 信号 9 已登录调试器 3- Xcode 已断开连接(我假设,设备重新启动进程)
  • @Jaydeep,你有解释这种行为的“官方”文档链接吗?谢谢:)!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 2018-05-14
  • 1970-01-01
相关资源
最近更新 更多