2015-06-29 125 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