Sjo*_*ors 23 cllocationmanager ios ios-background-mode ios12
从iOS 12开始,CLLocationManager不再在后台运行.应用程序在随机时间没有崩溃日志的情况下终止.这在iOS 12之前运行良好.
为了演示这个问题,我在这里创建了一个示例应用程序
演示应用程序只是启动CLLocationManager并在后台运行它.在后台运行时,我们通过记录它来跟踪它.问题是应用程序被iOS终止.创建演示应用程序以演示此问题.
重现步骤
结果:
随机时间后应用程序无任何理由终止.
预期结果:
它应该如何工作
这是Apple工程师证实的:
一旦CLLocationManager更新在前台启动并且您完成了让它在后台运行的所有工作,位置更新应该在后台运行,直到:
Sjo*_*ors 27
更新的答案:
Apple修复了iOS 12.2 beta 2(16E5191d)中的这个错误
原始分析和错误检测:
我们与Apple Developer技术支持部门一起使用Sysdiagnose文件分析了这个问题.遵循这些准则,您可以安装配置文件以在设备上进行更多日志记录.我不确切知道这些日志是如何工作的以及在哪里可以找到这个问题,但是Apple为我做了这个并且第一次分析了:
在2018/10/22 01:01:12:587上观察到的暂停事件中,这就是我所看到的(在您上一次活动记录后大约一分钟)
[CllocationManag:2725]以描述终止:{owner =; target = rw.sp.flitsmeister.frameworks.CllocationManagerBackgroundTest; }
这基本上是你的应用程序被终止,因为系统需要驱动器空间,并杀死了一堆应用程序,因此它可以删除他们的/ tmp和/ Library/Caches目录.我已经看到这个过程在iOS 12中更具攻击性,但看到你使用的是256GB设备,并且在清理后有大约179 GB的空闲时间,我发现很难相信这是合理的.
在发送了更多的sysdiagnose和复制案例之后,Apple尽力分析并以下列结论结束:
不幸的是,我没有带来好消息.
事实证明,目前在iOS 12中有一种新机制可以定期终止长时间运行的后台应用程序,因为系统需要释放资源.在这个时候,这个过程有点过于激进,我正在与相关团队合作,以使其表现得更好.
所以,在这一点上,我希望你提交一份错误报告.解释症状.并确保上传sysdiagnose文件以及错误报告.(我已经把你送进了,但是新的也没有受伤).请告诉我错误号码.
所以这意味着目前在iOS 12中你的应用程序不会在后台无限运行.我填写了一个错误报告,数字是45581276,并将尝试保持此线程更新.
| 归档时间: |
|
| 查看次数: |
5133 次 |
| 最近记录: |