2008-10-18 16 views
94

¿Cómo puedo establecer la ubicación (como se recogió en los servicios CoreLocation) en el simulador de iPhone?Establecer la ubicación en el simulador de iPhone

+0

I añadió un método para Xcode 6. http://stackoverflow.com/questions/19694205/customize-ios-simulator-preset-locations-to-fake-as-current-location/27299841#27299841 – Ohmy

+0

¿Alguien ha logrado que esto funcione en el simulador React nativo? – Nikos

Respuesta

17

En mi devolución de llamada de delegado, compruebo si estoy ejecutando en un simulador (#if TARGET_ IPHONE_SIMULATOR) y si es así, proporciono mi propio, revisado, Lat/Long. Que yo sepa, no hay otra manera.

+3

Comenzando con Xcode 4.2, ahora hay un camino bajo el menú 'Depurar' en el simulador usando la entrada 'Ubicación' que permite establecer una ubicación personalizada o seleccionar desde algunos desplazamientos y ubicaciones predefinidos. – progrmr

0

vale tarde que nunca :)

me encontré con este iSimulate, que le permite enviar la ubicación de la falsificación de la aplicación. La solución NO es gratis.

> Q: How does iSimulate work? 

> A: When added to your project, the iSimulate 
> SDK library creates a listening server 
> on your iPhone Simulator that waits 
> for a connection from an iPhone/iPod 
> running the iSimulate client. When 
> such connection is established, the 
> iSimulate client running on your 
> iPhone/iPod captures all data from the 
> accelerometer sensor, the touch 
> events, the location and device ID and 
> streams them to the server. The 
> iSimulate SDK library then recreates 
> all input events synthetically. This 
> is entirely transparent to your 
> application and does not interfere 
> with your application's functionality. 

De todos modos, estoy planeando obtener esto. se actualizará más pronto!

+0

Acabo de contactar a los desarrolladores: "En las Opciones de iSimulate, accesibles desde el botón superior derecho de la pantalla" Seleccionar computadora para conectarse a ", puede seleccionar una de las otras cuatro ubicaciones para usar". Entonces, no hay mucha ayuda realmente. –

+0

https://bitbucket.org/gnucoop/xamarin-ios-simulator-enhancements Esto ayuda a simular ubicaciones de forma gratuita – Pierre

0

Dónde quiere establecer su ubicación? puedes usar la API de Mapkit para mostrar tu ubicación. ver icodeblog.com para más detalles sobre cómo usar mapkit. También puede almacenar sus cordinates deseados simplemente cree un objeto CLLocation2D * ubicación; location.longitude = el valor de longitud deseado; location.latitude = el valor de latitud deseado;

+0

Esta era una vieja pregunta de cuando era nuevo en el SDK. Ahora me doy cuenta de que no hay soporte para automatizar CoreLocation en el simulador, lo cual es una pena. – Cliff

3

La gente amable en FutureTap han hecho que el FTLocationSimulator disponible gratuitamente en GitHub. Le permite preparar una ruta de prueba utilizando, por ejemplo, Google Earth, y luego hacer que el simulador alimente estas coordenadas a su aplicación.

He escrito un blog post acerca de cómo usar FTLocationSimulator de cambiar fácilmente entre múltiples rutas durante las pruebas de las funciones de localización.

3

puede agregar archivos GPX a su proyecto y usarlo:
editar esquema> Opciones> permitir la simulación ubicación> escoger el nombre del archivo que contiene, por ejemplo:

<?xml version="1.0"?> 
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="41.92296" lon="-87.63892"></wpt> 
</gpx> 

opcionalmente simplemente codificar el lat/lon valores que devuelve el administrador de ubicación. Esto es viejo estilo sin embargo.

lo que no tendrá que añadir al simulador, pero a su proyecto Xcode.

+2

¿Cómo puedo usar la ubicación predefinida? ¿Puedes explicar en detalle por favor?Quiero saber sobre eso –

+1

Proyecto> Esquemas> Editar esquema> Ubicación principal ... – Raptor

+0

haga clic en xcode luego producto> esquemas> Editar esquema> core location –

107

A partir de iOS 5, el simulador tiene una ubicación configurable.

En el menú Depurar, la última entrada es "Lugar"; esto le da un submenú con:

  • Ninguno
  • personalizado Ubicación Tiendas
  • de Apple
  • de Apple
  • City Paseo de la bicicleta
  • Ejecutar la ciudad
  • autopista Drive

Ubicación personalizada permite y o ingrese un valor Lat/Long. Bicycle ride, City Run y ​​Freeway Drive son simulaciones de un lugar en movimiento (en Cupertino, por supuesto).

Por supuesto, esto no hace nada para ayudar con la depuración para iOS 4 (o anterior); ¡pero es una mejora definitiva!

+0

¿dónde está el menú de depuración en el simulador IOS? –

5

Pre iOS 5 que podría hacerlo en código:

utilizo este fragmento justo antes de la @implementation de la clase donde necesito mis datos de rumbo y ubicación falsos.

#if (TARGET_IPHONE_SIMULATOR) 
@interface MyHeading : CLHeading 
    -(CLLocationDirection) magneticHeading; 
    -(CLLocationDirection) trueHeading; 
@end 

@implementation MyHeading 
    -(CLLocationDirection) magneticHeading { return 90; } 
    -(CLLocationDirection) trueHeading { return 91; } 
@end 

@implementation CLLocationManager (TemporaryLocationFix) 
- (void)locationFix { 
    CLLocation *location = [[CLLocation alloc] initWithLatitude:55.932 longitude:12.321]; 
    [[self delegate] locationManager:self didUpdateToLocation:location fromLocation:nil]; 

    id heading = [[MyHeading alloc] init]; 
    [[self delegate] locationManager:self didUpdateHeading: heading]; 
} 

-(void)startUpdatingHeading { 
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; 
} 

- (void)startUpdatingLocation { 
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; 
} 
@end 
#endif 

Después de iOS 5 basta con incluir un archivo GPX en su proyecto como este para tener la ubicación actualizada continuamente Hillerød.gpx:

<?xml version="1.0"?> 
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="55.93619760" lon="12.29131930"></wpt> 
    <wpt lat="55.93625770" lon="12.29108330"></wpt> 
    <wpt lat="55.93631780" lon="12.29078290"></wpt> 
    <wpt lat="55.93642600" lon="12.29041810"></wpt> 
    <wpt lat="55.93653420" lon="12.28998890"></wpt> 
    <wpt lat="55.93660630" lon="12.28966710"></wpt> 
    <wpt lat="55.93670240" lon="12.28936670"></wpt> 
    <wpt lat="55.93677450" lon="12.28921650"></wpt> 
    <wpt lat="55.93709900" lon="12.28945250"></wpt> 
    <wpt lat="55.93747160" lon="12.28949540"></wpt> 
    <wpt lat="55.93770000" lon="12.28966710"></wpt> 
    <wpt lat="55.93785620" lon="12.28977440"></wpt> 
    <wpt lat="55.93809660" lon="12.28988170"></wpt> 
    <wpt lat="55.93832490" lon="12.28994600"></wpt> 
    <wpt lat="55.93845710" lon="12.28996750"></wpt> 
    <wpt lat="55.93856530" lon="12.29007480"></wpt> 
    <wpt lat="55.93872150" lon="12.29013910"></wpt> 
    <wpt lat="55.93886570" lon="12.28975290"></wpt> 
    <wpt lat="55.93898590" lon="12.28955980"></wpt> 
    <wpt lat="55.93910610" lon="12.28919500"></wpt> 
    <wpt lat="55.93861330" lon="12.28883020"></wpt> 
    <wpt lat="55.93845710" lon="12.28868000"></wpt> 
    <wpt lat="55.93827680" lon="12.28850840"></wpt> 
    <wpt lat="55.93809660" lon="12.28842250"></wpt> 
    <wpt lat="55.93796440" lon="12.28831520"></wpt> 
    <wpt lat="55.93780810" lon="12.28810070"></wpt> 
    <wpt lat="55.93755570" lon="12.28790760"></wpt> 
    <wpt lat="55.93739950" lon="12.28775730"></wpt> 
    <wpt lat="55.93726730" lon="12.28767150"></wpt> 
    <wpt lat="55.93707500" lon="12.28760710"></wpt> 
    <wpt lat="55.93690670" lon="12.28734970"></wpt> 
    <wpt lat="55.93675050" lon="12.28726380"></wpt> 
    <wpt lat="55.93649810" lon="12.28713510"></wpt> 
    <wpt lat="55.93625770" lon="12.28687760"></wpt> 
    <wpt lat="55.93596930" lon="12.28679180"></wpt> 
    <wpt lat="55.93587310" lon="12.28719940"></wpt> 
    <wpt lat="55.93575290" lon="12.28752130"></wpt> 
    <wpt lat="55.93564480" lon="12.28797190"></wpt> 
    <wpt lat="55.93554860" lon="12.28833670"></wpt> 
    <wpt lat="55.93550050" lon="12.28868000"></wpt> 
    <wpt lat="55.93535630" lon="12.28900190"></wpt> 
    <wpt lat="55.93515200" lon="12.28936670"></wpt> 
    <wpt lat="55.93505580" lon="12.28958120"></wpt> 
    <wpt lat="55.93481550" lon="12.29001040"></wpt> 
    <wpt lat="55.93468320" lon="12.29033230"></wpt> 
    <wpt lat="55.93452700" lon="12.29063270"></wpt> 
    <wpt lat="55.93438280" lon="12.29095450"></wpt> 
    <wpt lat="55.93425050" lon="12.29121200"></wpt> 
    <wpt lat="55.93413040" lon="12.29140520"></wpt> 
    <wpt lat="55.93401020" lon="12.29168410"></wpt> 
    <wpt lat="55.93389000" lon="12.29189870"></wpt> 
    <wpt lat="55.93372170" lon="12.29239220"></wpt> 
    <wpt lat="55.93385390" lon="12.29258530"></wpt> 
    <wpt lat="55.93409430" lon="12.29295010"></wpt> 
    <wpt lat="55.93421450" lon="12.29320760"></wpt> 
    <wpt lat="55.93433470" lon="12.29333630"></wpt> 
    <wpt lat="55.93445490" lon="12.29350800"></wpt> 
    <wpt lat="55.93463520" lon="12.29374400"></wpt> 
    <wpt lat="55.93479140" lon="12.29410880"></wpt> 
    <wpt lat="55.93491160" lon="12.29419460"></wpt> 
    <wpt lat="55.93515200" lon="12.29458090"></wpt> 
    <wpt lat="55.93545250" lon="12.29494570"></wpt> 
    <wpt lat="55.93571690" lon="12.29505300"></wpt> 
    <wpt lat="55.93593320" lon="12.29513880"></wpt> 
    <wpt lat="55.93617360" lon="12.29522460"></wpt> 
    <wpt lat="55.93622170" lon="12.29537480"></wpt> 
    <wpt lat="55.93713510" lon="12.29505300"></wpt> 
    <wpt lat="55.93776000" lon="12.29378700"></wpt> 
    <wpt lat="55.93904600" lon="12.29531040"></wpt> 
    <wpt lat="55.94004350" lon="12.29552500"></wpt> 
    <wpt lat="55.94023570" lon="12.29561090"></wpt> 
    <wpt lat="55.94019970" lon="12.29591130"></wpt> 
    <wpt lat="55.94017560" lon="12.29629750"></wpt> 
    <wpt lat="55.94017560" lon="12.29670520"></wpt> 
    <wpt lat="55.94017560" lon="12.29713430"></wpt> 
    <wpt lat="55.94019970" lon="12.29754200"></wpt> 
    <wpt lat="55.94024780" lon="12.29816430"></wpt> 
    <wpt lat="55.94051210" lon="12.29842180"></wpt> 
    <wpt lat="55.94084860" lon="12.29820720"></wpt> 
    <wpt lat="55.94105290" lon="12.29799270"></wpt> 
    <wpt lat="55.94123320" lon="12.29777810"></wpt> 
    <wpt lat="55.94140140" lon="12.29749910"></wpt> 
    <wpt lat="55.94142550" lon="12.29726310"></wpt> 
    <wpt lat="55.94147350" lon="12.29687690"></wpt> 
    <wpt lat="55.94155760" lon="12.29619020"></wpt> 
    <wpt lat="55.94161770" lon="12.29576110"></wpt> 
    <wpt lat="55.94148550" lon="12.29531040"></wpt> 
    <wpt lat="55.94093270" lon="12.29522460"></wpt> 
    <wpt lat="55.94041600" lon="12.29518170"></wpt> 
    <wpt lat="55.94056020" lon="12.29398010"></wpt> 
    <wpt lat="55.94024780" lon="12.29352950"></wpt> 
    <wpt lat="55.94001940" lon="12.29335780"></wpt> 
    <wpt lat="55.93992330" lon="12.29325050"></wpt> 
    <wpt lat="55.93969490" lon="12.29299300"></wpt> 
    <wpt lat="55.93952670" lon="12.29277840"></wpt> 
    <wpt lat="55.93928630" lon="12.29260680"></wpt> 
    <wpt lat="55.93915410" lon="12.29232780"></wpt> 
    <wpt lat="55.93928630" lon="12.29202740"></wpt> 
    <wpt lat="55.93933440" lon="12.29174850"></wpt> 
    <wpt lat="55.93947860" lon="12.29116910"></wpt> 
    <wpt lat="55.93965890" lon="12.29095450"></wpt> 
    <wpt lat="55.94001940" lon="12.29061120"></wpt> 
    <wpt lat="55.94041600" lon="12.29084730"></wpt> 
    <wpt lat="55.94076450" lon="12.29101890"></wpt> 
    <wpt lat="55.94080060" lon="12.29065410"></wpt> 
    <wpt lat="55.94086060" lon="12.29031080"></wpt> 
    <wpt lat="55.94092070" lon="12.28990310"></wpt> 
    <wpt lat="55.94099280" lon="12.28975290"></wpt> 
    <wpt lat="55.94119710" lon="12.28986020"></wpt> 
    <wpt lat="55.94134130" lon="12.28998890"></wpt> 
    <wpt lat="55.94147350" lon="12.29007480"></wpt> 
    <wpt lat="55.94166580" lon="12.29003190"></wpt> 
    <wpt lat="55.94176190" lon="12.28938810"></wpt> 
    <wpt lat="55.94183400" lon="12.28893750"></wpt> 
    <wpt lat="55.94194220" lon="12.28850840"></wpt> 
    <wpt lat="55.94199030" lon="12.28835820"></wpt> 
    <wpt lat="55.94215850" lon="12.28859420"></wpt> 
    <wpt lat="55.94250700" lon="12.28883020"></wpt> 
    <wpt lat="55.94267520" lon="12.28893750"></wpt> 
    <wpt lat="55.94284350" lon="12.28902330"></wpt> 
    <wpt lat="55.94304770" lon="12.28915210"></wpt> 
    <wpt lat="55.94325200" lon="12.28925940"></wpt> 
    <wpt lat="55.94348030" lon="12.28953830"></wpt> 
    <wpt lat="55.94366060" lon="12.28966710"></wpt> 
    <wpt lat="55.94388890" lon="12.28975290"></wpt> 
    <wpt lat="55.94399700" lon="12.28994600"></wpt> 
    <wpt lat="55.94379280" lon="12.29065410"></wpt> 
    <wpt lat="55.94364860" lon="12.29095450"></wpt> 
    <wpt lat="55.94350440" lon="12.29127640"></wpt> 
    <wpt lat="55.94340820" lon="12.29155540"></wpt> 
    <wpt lat="55.94331210" lon="12.29198450"></wpt> 
    <wpt lat="55.94315590" lon="12.29269260"></wpt> 
    <wpt lat="55.94310780" lon="12.29318610"></wpt> 
    <wpt lat="55.94301170" lon="12.29361530"></wpt> 
    <wpt lat="55.94292760" lon="12.29408740"></wpt> 
    <wpt lat="55.94290350" lon="12.29436630"></wpt> 
    <wpt lat="55.94287950" lon="12.29453800"></wpt> 
    <wpt lat="55.94283140" lon="12.29533190"></wpt> 
    <wpt lat="55.94274730" lon="12.29606150"></wpt> 
    <wpt lat="55.94278340" lon="12.29621170"></wpt> 
    <wpt lat="55.94280740" lon="12.29649060"></wpt> 
    <wpt lat="55.94284350" lon="12.29679100"></wpt> 
    <wpt lat="55.94284350" lon="12.29734890"></wpt> 
    <wpt lat="55.94308380" lon="12.29837890"></wpt> 
    <wpt lat="55.94315590" lon="12.29852910"></wpt> 
    <wpt lat="55.94263920" lon="12.29906550"></wpt> 
    <wpt lat="55.94237480" lon="12.29910850"></wpt> 
    <wpt lat="55.94220660" lon="12.29915140"></wpt> 
    <wpt lat="55.94208640" lon="12.29902260"></wpt> 
    <wpt lat="55.94196620" lon="12.29887240"></wpt> 
    <wpt lat="55.94176190" lon="12.29794970"></wpt> 
    <wpt lat="55.94156970" lon="12.29760640"></wpt> 
</gpx> 

utilizo GPSies.com para crear el archivo de base de los datos GPX. Se requiere un poco de limpieza.

Activar mediante la ejecución del simulador y la elección de su archivo

http://castleandersen.dk/keepers/location.png

75
  1. proyecto de ejecución en simulador de iPhone
  2. Crear en el archivo de edición de textos siguiente archivo, lo llaman MyOffice por ejemplo. Hacer la extensión como .gpx enter image description here

    <?xml version="1.0"?> <gpx version="1.0" creator="MyName"> <wpt lat="53.936166" lon="27.565370"> <name>MyOffice</name> </wpt> </gpx>

  3. Seleccionar en Xcode en el área de Simulación Add GPX File to Project...enter image description here

  4. Agregar archivo del menú creado para proyectar.
  5. ahora se puede ver su ubicación en la zona de Simular: enter image description here
+0

TextEdit no guarda el archivo .gpx. ¿Como lo hago? –

+2

guárdelo como .txt (o .xml) y luego cambie el nombre a .gpx – beryllium

+7

¡Gracias! Muy fácil, funciona genial. En caso de que alguien más use esto, aquí está el archivo GPX de muestra en el texto para que pueda copiarlo y pegarlo: \t \t \t Oficina \t RyanG

2
aplicación

abierto simulador de iOS de depuración Menú -> Localización ->

  1. Ninguno
  2. personalizado Ubicación
  3. tiendas de Apple ...
5

en iOS Simulator m enu, vaya a Depurar -> Ubicación -> Ubicación personalizada. Allí puede establecer la latitud y la longitud y probar la aplicación en consecuencia. Esto funciona con mapkit y también con CLLocationManager.

Cuestiones relacionadas