我一直在开发一款使用swift的iOS定位服务的应用。在ios9之前一切都很好。由于某些原因,我的应用程序在后台运行时停止运行,但只在物理设备上运行。模拟器在后台运行良好。我通过NSLog记录东西,所以我可以告诉它停在设备上,而不是sim卡上。
是的,我有信息。plist。是的,我已经打开了后台功能。这在iOS8中确实有效,但由于某些原因,在ios9中应用程序停止在后台执行。
我在设置中打开了背景刷新,我的应用程序设置为总是请求位置更新,这也在手机的设置中打开了。
我有点失落,为什么会发生这种情况,所以我猜可能有一些代码变化与xcode7和/或ios9,我需要实现。
任何帮助都是非常感激的!
Rob看来苹果在iOS9中需要一个新东西:
allowsBackgroundLocationUpdates = true
这是位置管理器。
我的最终代码看起来像:
// this is needed for ios9 to get the location even when it's backgrounded
if #available(iOS 9.0, *) {
self.locationManager.allowsBackgroundLocationUpdates = true
} else {
// Fallback on earlier versions
}