2015-06-29 121 views
11

基于此example application 和此Stackoverflow帖子:Periodic iOS background location updates,我设法创建了一个定期的背景位置跟踪的工作实现。iOS在测试设备上的背景位置跟踪失败

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

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

+0

你使用什么超时? 180秒? – Templar

回答

0

你一定要正确使用后台位置的权限?您是在iOS 7还是iOS 8上测试/部署?请查看以下文章以获取更多信息:http://nshipster.com/core-location-in-ios-8/

+0

不是。这是问题所在。示例代码正在使用完全过时。没有人应该使用。在大约10行代码中,可以使用适当的实现。 –

0

嗨你有没有在Appdelegate中尝试过以下内容?

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

我可以试试 –

+0

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

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