iOS使用新的隐私设置强制重新启动应用程序



如果用户更改相机权限,应用程序将在后台崩溃,并显示来自调试器的消息:由于信号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的方式。当用户更改应用程序的某些权限时,iOS将终止该应用程序。

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

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

看这张幻灯片的第24页

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

  • 构建在沙箱之上
  • iOS收集的用户权限
  • 未经用户许可,禁止访问数据
  • 如果权限更改,应用程序将退出
  • 如果已注册,则调用后台任务过期处理程序
  • iOS然后终止应用程序

相关内容

最新更新