ios12 后台定位服务停止

ios12 background location service stopping

我有一个应用程序可以在后台持续跟踪设备位置。 这在 ios 11.4 中运行良好,我可以让 运行 应用程序在后台运行几天,同时仍在前台执行其他操作。

现在使用 ios12,当设备闲置一段时间后,应用会停止 运行ning。

LocationManager初始化如下:

locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.startUpdatingHeading()
locationManager.allowsBackgroundLocationUpdates = false
locationManager.pausesLocationUpdatesAutomatically = false
if #available(iOS 11.0, *)
{
    locationManager.showsBackgroundLocationIndicator = true
} 
locationManager.distanceFilter = prefs.getDoubleFromString(Prefs.PREF_DISTANCE_FILTER, defaultVal: 2.5)

当用户决定开始跟踪时

locationManager.allowsBackgroundLocationUpdates = true

已设置。

该应用为定位服务设置了 "Always" 权限。

知道 ios 12 发生了什么变化吗?

我也有这个疑问,昨晚尝试关闭"Do Not Disturb",后台定位服务正常

那么,"Do Not Disturb"模式可以停止定位服务吗?

除了关闭外,还有其他方法可以避免定位服务停止吗"Do Not Disturb"?

这似乎是一个错误,因为 iOS12 应用程序将无故在后台终止。我已经填写了错误报告。

有关详细信息和演示项目,请参阅此处来演示问题:

错误已在 iOS 12.2 beta 2 (16E5191d)

中修复