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

Posted

技术标签:

【中文标题】iOS 后台位置跟踪在测试设备上失败【英文标题】:iOS Background location tracking fails on test devices 【发布时间】:2015-09-16 03:05:46 【问题描述】:

基于此example application 而这个 *** 帖子:Periodic ios background location updates,我已经设法为定期后台位置跟踪创建了一个工作实现。

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

它是否与调试/发布模式或配置文件有任何关系?

【问题讨论】:

你使用什么超时? 180 秒? 【参考方案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

【讨论】:

【参考方案2】:

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

- (void)applicationWillResignActive:(UIApplication *)application

     [locationManager startUpdatingLocation];
     //`locationManager` is object of `CLLocationManager` 

【讨论】:

我的朋友也有同样的问题。所以他在 appdelegate 中尝试了这个,现在应用可以正常工作了

以上是关于iOS 后台位置跟踪在测试设备上失败的主要内容,如果未能解决你的问题,请参考以下文章

跟踪在 iOS 上卸载应用程序的时间

没有错误或堆栈跟踪的 iOS 崩溃

在 iOS 上不断跟踪用户位置

是否可以在 iPhone 上的 phonegap 应用程序中在后台跟踪 gps 位置?

iOS CoreLocation 在后台

服务无法在持续的后台位置跟踪上运行