【问题标题】:App is forced to restart by iOS with new privacy settingsiOS 使用新的隐私设置强制重启应用
【发布时间】:2023-03-21 14:33:02
【问题描述】:

如果用户更改相机权限,应用程序会在后台崩溃并显示来自调试器的消息:由于信号 9 而终止。

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

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

【问题讨论】:

标签: ios swift camera settings


【解决方案1】:

这不是您的应用程序的问题。这正是苹果设计 iOS 的方式。当用户更改应用程序的某些权限时,iOS 将终止应用程序。

实际上,您在切换设置时会收到一条 SIGKILL 消息,但没有崩溃日志。在这种情况下,即使applicationWillTerminate 也不会被调用!

所以答案是你无法修复它。

查看this slide的第24页

【讨论】:

【解决方案2】:

根据 iOS 6 之后的 Apple 隐私政策进行数据隔离:

  • 在沙盒之上构建
  • iOS 收集的用户权限
  • 未经用户许可禁止访问数据
  • 如果权限发生变化,应用程序将退出
  • 如果已注册,则会调用后台任务到期处理程序
  • iOS 然后杀死应用程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-16
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多