iOS后台位置跟踪在测试设备上失败

时间:2015-06-29 15:11:34

标签: ios background location

基于此example application 这个Stackoverflow帖子:Periodic iOS background location updates,我设法创建了一个定期后台位置跟踪的工作实现。

一切都在设备上运行良好,我从Xcode安装应用程序,但对于我通过 crashlytics 发送应用程序的每个测试人员,应用程序仍然在后台超时。

是否必须对调试/发布模式或配置文件进行任何操作?

3 个答案:

答案 0 :(得分:1)

您必须使用applicationDidEnterBackground方法在后台模式下获取更新位置。我从github下载了你的源码,在这里没有实现以下方法:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
}

你必须这样使用:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self.shareModel.anotherLocationManager stopMonitoringSignificantLocationChanges];

    if(IS_OS_8_OR_LATER) {
        [self.shareModel.anotherLocationManager requestAlwaysAuthorization];
    }

    [self.shareModel.anotherLocationManager startMonitoringSignificantLocationChanges];
}

有关详细信息,请参阅链接: http://mobileoop.com/getting-location-updates-for-ios-7-and-8-when-the-app-is-killedterminatedsuspended

答案 1 :(得分:0)

您是否在Appdelegate中尝试过以下操作?

- (void)applicationWillResignActive:(UIApplication *)application
{
     [locationManager startUpdatingLocation];
     //`locationManager` is object of `CLLocationManager` 
}

答案 2 :(得分:0)

您确定正确使用了后台位置权限吗?您是在iOS 7或iOS 8上进行测试/部署吗?有关详细信息,请查看此文章:http://nshipster.com/core-location-in-ios-8/