我一直在使用swift开发一个使用iOS定位服务的应用。它直到ios9才出色。出于某种原因,我的应用程序在后台运行时停止运行,但仅在物理设备上运行。模拟器在后台运行良好。我正在通过NSLog记录东西,所以我可以告诉它在设备上停止而不是sim。
是的我设置了info.plist。是的我打开了后台功能。这确实在iOS8中有效,但出于某种原因9,应用程序在后台停止执行。
我在设置中打开了后台刷新功能,我的应用程序设置为始终请求位置更新,这也是在手机的设置中打开的。
我有点不知道为什么会发生这种情况,所以我猜我可能需要对xcode7和/或ios9进行一些代码更改。
非常感谢任何帮助!!!
罗布
答案 0 :(得分:2)
所以看来Apple在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
}