iOS 使用新的隐私设置强制重启应用
Posted
技术标签:
【中文标题】iOS 使用新的隐私设置强制重启应用【英文标题】:App is forced to restart by iOS with new privacy settings 【发布时间】:2019-04-24 20:40:21 【问题描述】:如果用户更改相机权限,应用程序会在后台崩溃并显示来自调试器的消息:由于信号 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)
)
))
【问题讨论】:
App crashes in background while changing permission - swift的可能重复 【参考方案1】:这不是您的应用程序的问题。这正是苹果设计 ios 的方式。当用户更改应用程序的某些权限时,iOS 将终止应用程序。
实际上,您在切换设置时会收到一条 SIGKILL 消息,但没有崩溃日志。在这种情况下,即使applicationWillTerminate
也不会被调用!
所以答案是你无法修复它。
查看this slide的第24页
【讨论】:
Apple 是否有任何声明得出相同结论? 是的。看第 24 页。developer.apple.com/devcenter/download.action?path=/wwdc_2012/… 谢谢sepehr。数据隔离: • 如果权限发生变化,则退出应用程序 ■ 调用后台任务到期处理程序,如果已注册 ■ iOS 则终止应用程序【参考方案2】:根据 iOS 6 之后的 Apple 隐私政策进行数据隔离:
在沙盒之上构建 iOS 收集的用户权限 未经用户许可禁止访问数据 如果权限发生变化,应用程序将退出 如果已注册,则会调用后台任务到期处理程序 iOS 然后杀死应用程序【讨论】:
以上是关于iOS 使用新的隐私设置强制重启应用的主要内容,如果未能解决你的问题,请参考以下文章
IOS14评测:新的视觉元素,方便的细节提升,周到的隐私安全