У меня есть приложение, которое проверяет плотность iPhone в секунду в фоновом режиме. Когда я запускаю этот код при подключении к Xcode, программа работает более 30 минут в фоновом режиме. Однако, когда он не подключен к Xcode, он перестает работать до 10 минут в фоновом режиме. Я использую обновление местоположения и обновление видеокадров:Отслеживание движений устройства iOS в фоновом режиме более 10 минут
- (void)applicationDidEnterBackground:(UIApplication *)application {
bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
bgTask = UIBackgroundTaskInvalid;
NSLog(@"End Background Tasks");
}];
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
[locationManager requestAlwaysAuthorization];
}
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {
locationManager.allowsBackgroundLocationUpdates = YES;
}
[locationManager startUpdatingLocation];
[self.motionManager startDeviceMotionUpdates];
}
См. Мой ответ здесь: http://stackoverflow.com/a/19891765/341994 – matt