Simulation des mises à jour de localisation sur le simulateur iPhone

je veux permettre aux utilisateurs de régler les informations GPS sur le simulateur iPhone via GUI.

mais je ne suis pas sûr comment archiver cela - il semble que cet outil appelé iSimulate fait cela en quelque sorte par installer un SDK. Mais je ne comprends pas comment ils "outrepassent" / "hacker" le simulateur par cela.

Merci!

23
demandé sur Ortwin Gentz 2010-01-13 14:23:15

8 réponses

par exemple, pour recevoir les mises à jour de localisation GPS, vous devez créer une instance de CLLocationManager et configurer ensuite l'une de vos classes pour qu'elle soit la sienne. délégué. Eh bien, sur le simulateur iPhone vous pouvez à la place démarrer le code qui envoie de faux messages à votre délégué à la place. Si vous appelez la méthode d'un délégué comme ceci:

[delegate locationManager:nil didUpdateToLocation:newLocation fromLocation:oldLocation];

votre code n'aura pas à savoir que la mise à jour de l'emplacement est fausse. Si vous voulez obtenir fantaisie, vous pouvez créer une nouvelle classe qui met en œuvre toutes les méthodes publiques de CLLocationManager mais qui envoie des messages faux à la place. (Étant donné que L'objectif-C est tapé dynamiquement, il n'aura pas besoin d'être une sous-classe, répond à tous les messages que vous envoyez.)

comme note d'accompagnement, vous pouvez utiliser ces macros de compilateur pour garder le simulateur de code-seulement:

#if TARGET_IPHONE_SIMULATOR
   locationManager = (id)[[MyFakeLocationManager alloc] init];
#else
   locationManager = [[CLLocationManager alloc] init];
#endif
11
répondu benzado 2010-01-15 00:35:42

ajout D'une deuxième réponse car il y a maintenant des fonctionnalités intégrées dans Xcode (≥4.2). Il y a deux façons de simuler les mises à jour des emplacements:

  • dans le simulateur iOS, sous "Debug / Location", vous pouvez spécifier une latitude/longitude constante ou sélectionner plusieurs profils prédéfinis comme" City Run "ou"Freeway Drive".
  • dans Xcode il y a une nouvelle icône de localisation dans le débogueur, juste à côté du bouton Step Out. Il vous permet de sélectionner plusieurs villes hardcoded dans le monde et ajoutez un fichier GPX personnalisé à votre projet. La bonne chose à propos de la simulation de localisation dans Xcode est qu'elle fonctionne aussi sur l'appareil (n'oubliez pas de l'éteindre à nouveau, sinon votre fuseau horaire automatique sera erroné!). Le fichier GPX personnalisé est agréable, aussi, bien qu'il se heurte parfois Xcode si le fichier GPX n'est pas reconnu. Assurez-vous d'utiliser <wpt> tags:
<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 
  <wpt lat="47.52789018096815" lon="7.385249894876031"></wpt>
  <wpt lat="47.52720984945248" lon="7.382647784661411"></wpt>
  ...
</gpx>
46
répondu Ortwin Gentz 2012-11-02 15:28:55

le simulateur iOS est doté d'une simulation d'emplacement complète. À partir du menu "Debug", vous pouvez explorer vos différentes options de localisation.


réponse originale affichée sous NDA.

Vérifiez l'entrée en bas à droite sur cette page. Je suis sous la NDA donc je ne peux rien dire sauf que ça m'a fait économiser beaucoup d'argent pour l'essence. :)

1: http://developer.apple.com/technologies/ios5/

12
répondu wjl 2013-03-01 03:15:36

Vous pourriez veux vérifier mon FTLocationSimulator à http://github.com/futuretap/FTLocationSimulator

il lit un fichier KML généré par Google Earth pour fournir des mises à jour de localisation en continu. Il met également à jour le point bleu de localisation des utilisateurs dans un MKMapView avec les mises à jour de localisation simulées.

7
répondu Ortwin Gentz 2010-10-27 08:39:01

dans le Xcode 4.2 nous pouvons simuler . Il y a un symbole d'emplacement sur la zone de débogage (pendant que vous exécutez l'application). Il y a quelques emplacements prédéfinis . Aussi, nous pouvons ajouter nouveaux fichiers GPX

4
répondu Mohammed Afsul 2011-11-15 12:16:44

Hy stephanos,

les informations du GPS ne peuvent pas être changées. Il est protégé et je ne crois pas que l'imitation puisse le changer.

autant que je sache, iSimulate est un outil pour envoyer des commandes d'un appareil au simulateur iPhone, comme accéléromètre, touches, orientation, etc, y compris la localisation GPS actuelle.

le SDK d'iSimulate fonctionne avec l'application. Vous devez installer l'application dans l'appareil et ajouter le kit de développement de votre projet, de sorte que vous n'avez pas besoin pour buld et d'exécuter votre application à l'appareil tout le temps que vous feriez normalement.

Cheers,

VFN

0
répondu vfn 2010-01-13 12:43:50
0
répondu 100grams 2011-06-23 16:01:04

Juste pour prolonger @Ortwin Gentz réponse:

si vous avez besoin de plus de configuration de chaque point gps dans votre fichier gpx. Jetez un oeil à cette page:

http://www.topografix.com/gpx_manual.asp

il vous indique exactement comment vous pouvez fournir plus de détails comme la vitesse et la hauteur d'un point spécifique.

0
répondu rubybeginner 2014-10-21 09:08:29