我的应用监控用户位置更新(不一定是重要的位置更改):
someLocationManager = [[CLLocationManager alloc] init];
[someLocationManager setDelegate:self];
[someLocationManager startUpdatingLocation];
当app(在模拟器中)处于前台时,一切正常,但是当它暂停到后台(不终止)时,我将此错误记录到日志中:
不能使用endBackgroundTask:没有带标识符*的后台任务,或者它可能已经结束
此错误的所有其他答案都与位置服务无关,但只与通用后台任务有关。
答案 0 :(得分:1)
因此,应该进行以下3个设置,以便后台位置更新正常工作。 这样做并解决问题:
NSLocationAlwaysUsageDescription
中设置了info.plist
密钥(以值作为权限的原因)。[someLocationManager requestAlwaysAuthorization];
。Location Updates
部分的Background Modes
中启用Capabilities
。不确定这个,但听起来不错。享受!
答案 1 :(得分:1)
在获取用户的位置授权时添加以下代码。因为apple改变了iOS9的默认allowBackgroundLocationUpdates NO。
$ sudo apt-get install libc6