2010-01-13 19 views

Respuesta

11

Por lo que yo sé, iSimulate no está empleando cualquier hacks. Es un código que se ejecuta dentro de su aplicación en el Simulador que se comunica con un dispositivo a través de la red. Cuando recibe mensajes del dispositivo (toques, GPS, aceleración), simula esos eventos llamando el código de la aplicación como si el sistema los hubiera activado.

Por ejemplo, para recibir actualizaciones de ubicación GPS, debe crear una instancia de CLLocationManager y luego configurar una de sus clases para que sea su delegado. Bueno, en el simulador de iPhone, en su lugar, puede iniciar el código que envía mensajes falsos a su delegado. Si usted acaba de llamar el método de un delegado de esta manera:

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

El código no tendrá que saber que la actualización de localización es falso. Si quieres ser elegante, puedes crear una nueva clase que implemente todos los métodos públicos de CLLocationManager, pero que envíe mensajes falsos. (Dado que Objective-C se tipea dinámicamente, no será necesario que sea una subclase, siempre que responda a todos los mensajes que envíe)

Como nota al margen, puede utilizar estas macros de compilación para mantener el código simulador de sólo:

#if TARGET_IPHONE_SIMULATOR 
    locationManager = (id)[[MyFakeLocationManager alloc] init]; 
#else 
    locationManager = [[CLLocationManager alloc] init]; 
#endif 
0

Hy stephanos,

La información del GPS no se puede cambiar. Está protegido y no creo que iSimulate pueda cambiarlo.

Por lo que sé, iSimulate es una herramienta para enviar comandos desde un dispositivo al simulador de iPhone, como el acelerómetro, los toques, la orientación, etc., incluida la ubicación actual del GPS.

El SDK de iSimulate funciona con la aplicación. Debe instalar la aplicación en el dispositivo y agregar el SDK a su proyecto, para que no tenga que instalar y ejecutar su aplicación en el dispositivo todo el tiempo que lo haría normalmente.

Cheers,
VFN

7

Es posible que desee echa un vistazo a mi FTLocationSimulator en http://github.com/futuretap/FTLocationSimulator

Se lee un archivo KML generado por Google Earth para proporcionar actualizaciones de ubicación continuos. También actualiza el punto de ubicación de usuario azul en un MKMapView con las actualizaciones de ubicación simuladas.

+0

que proporciona una segunda respuesta que describe las características ahora integrados en la simulación localización en Xcode ≥4.2: http://stackoverflow.com/a/9359093/235297 –

12

El simulador de iOS ha construido una simulación completa de ubicación. Desde el menú "Test", se puede explorar sus diversas opciones de ubicación.


Original answer posted while under NDA.

Consulte la entrada inferior derecha en this page. Estoy bajo la NDA así que no puedo decir nada, excepto que me ha ahorrado mucho dinero. :)

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

+0

Esta es una solución mejor – honcheng

+0

Ambos enlaces son 404ed –

+0

Originalmente respondí este mientras que iOS 5 estaba bajo NDA. Esas páginas acaban de enumerar las principales características que estaban por venir. – wjl

4

En Xcode 4.2 podemos simular. Hay un símbolo de ubicación en el área de depuración (mientras ejecuta la aplicación). Hay algunas ubicaciones predefinidas. También podemos add nuevos archivos GPX

46

Se agregó una segunda respuesta ya que ahora hay funciones integradas en Xcode (≥4.2). Hay dos maneras para simular las actualizaciones de ubicación:

  • En el simulador de iOS, en "Depuración/Lugar" que es capaz de especificar una latitud constante/longitud o seleccionar varios perfiles predefinidos como "Ciudad Ejecutar" o "Freeway Manejar".
  • En Xcode hay un nuevo icono de ubicación en el depurador, justo al lado del botón Salir. Le permite seleccionar varias ciudades codificadas en todo el mundo y agregar un archivo GPX personalizado a su proyecto. Lo bueno de la simulación de ubicación en Xcode es que también funciona en el dispositivo (simplemente no olvide apagarlo de nuevo, ¡de lo contrario su zona horaria automática se equivocará!). El archivo GPX personalizado también es agradable, aunque a veces falla Xcode si no se reconoce el archivo GPX. Asegúrese de que utiliza sólo <wpt> etiquetas:
<?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> 
+5

Esta solución es la respuesta correcta. – deepwinter

0

Sólo para extender @Ortwin Gentz ​​respuesta:

Si necesita más configuración de cada gps puntos en el archivo GPX. Echar un vistazo a esta página:

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

Le dice exactamente cómo se puede dar más detalles como la velocidad y la altura de un punto específico.

Cuestiones relacionadas