Utilisation du lecteur freeway / city run dans le simulateur iOS en mode d'arrière-plan

J'essaie d'utiliser les options du simulateur iOS: debug-> freeway drive / city run afin de simuler les mises à jour de localization.

Dans mon code j'utilise CLLocationManager pour get des mises à jour de localization avec le code suivant:

 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters]; [locationManager setDistanceFilter:20]; } -(void)viewWillAppear:(BOOL)animated { [locationManager startUpdatingLocation]; } -(void)locationManager:(CLLocationManager *)lm didUpdateLocations:(NSArray *)locations{ CLLocation *location = [locations lastObject]; NSLog(@"Location returned: %f, %f Accuracy: %f", location.coordinate.latitude, location.coordinate.longitude, location.horizontalAccuracy); } 

Je ne reçois jamais un callback sur le délégué pour les mises à jour de localization, alors que mon application est en arrière-plan et que je sélectionne l'option dans le simulateur.

J'ai fourni à mon application le mode d'arrière-plan pour les mises à jour de localization. S'il vous plaît laissez-moi savoir exactement comment utiliser ces fonctionnalités ou si quelque chose me manque ici.

J'ai finalement réglé le problème. Les options du simulateur fonctionnent parfaitement bien mais c'était l'implémentation de CLLocation qui était le problème.

Sur iOS 8, le code de mise à jour de l'location ne fonctionnera que si:

  1. Vous ajoutez NSLocationWhenInUseUsageDescription & NSLocationAlwaysUsageDescription à la plist avec certaines valeurs de string qui seront invitées à l'user.

  2. Vous devez append l'autorisation Demander à l'user pour que les codes de localization fonctionnent:

      [self.locationManager requestWhenInUseAuthorization] [self.locationManager requestAlwaysAuthorization] 

Extrait de ce post .