Flutter-geolocator: La ubicación no funciona en el emulador IOS

Creado en 4 jun. 2020  ·  12Comentarios  ·  Fuente: Baseflow/flutter-geolocator

🐛 Informe de error

Comportamiento esperado

Espere imprimir la posición, este es el código:
Geolocator geo = Geolocator ();
Posición pos =
aguardar geo.getCurrentPosition (deseadaAccuracy: LocationAccuracy.high);
imprimir (pos);

Pasos de reproducción

Funciona en la posición del emulador de Android que se imprime en la consola.
No funciona en el emulador de iOS, no se imprime nada y si agrego otra declaración de impresión después de la impresión (pos), tampoco se imprime. Supongo que nunca consiguió el puesto, ¿así que está "esperando" para siempre?

Configuración

Emulador de iPhone 11 en Android Studio

Versión: 1.x

Plataforma:
: iphone: iOS

ios in progress bug

Comentario más útil

@LarryJing No puedo reproducir este problema, ¿realmente simulaste las actualizaciones de ubicación? En el simulador de iOS, debe establecer activamente una ubicación mediante la siguiente opción de menú: "Funciones" -> "Ubicación":

Screenshot 2020-06-04 at 13 21 49

Todos 12 comentarios

@LarryJing No puedo reproducir este problema, ¿realmente simulaste las actualizaciones de ubicación? En el simulador de iOS, debe establecer activamente una ubicación mediante la siguiente opción de menú: "Funciones" -> "Ubicación":

Screenshot 2020-06-04 at 13 21 49

sí, también tengo un error en este complemento en el simulador de ios. Recibo este inicio de sesión en la consola.
Screenshot 2020-06-04 at 6 42 49 PM

sí, también tengo un error en este complemento en el simulador de ios. Recibo este inicio de sesión en la consola.
Screenshot 2020-06-04 at 6 42 49 PM

También tengo el mismo error.

`` doctor aleteo
[✓] Flutter (canal estable, v1.17.2, en Mac OS X 10.15.4 19E287, configuración regional en-JP)

[✓] Cadena de herramientas de Android: desarrollo para dispositivos Android (SDK de Android versión 29.0.3)

[✓] Xcode: desarrollo para iOS y macOS (Xcode 11.5)
[✓] Android Studio (versión 4.0)
[!] IntelliJ IDEA Ultimate Edition (versión 2018.2.2)
✗ El complemento Flutter no está instalado; esto agrega funcionalidad específica de Flutter.
✗ El complemento Dart no está instalado; esto agrega funcionalidad específica de Dart.
[✓] Código VS (versión 1.45.1)
[✓] Dispositivo conectado (1 disponible)
''

versión: geolocator: 5.3.2

simulador: iPhone 11 / Software Version 13.5

el error no ocurre cuando la versión del módulo cambia a 5.3.1 .

Screenshot 2020-06-04 at 8 15 06 PM
Al agregar el permiso de actualización de ubicación, este problema se resuelve

También me encuentro con esto. No quiero solicitar la ubicación en segundo plano, solo en primer plano. Espero que eso signifique que no debería necesitar habilitar un modo en segundo plano.

De hecho, este es un error que se publicó por error. Lo corregiré más tarde hoy / mañana. Hasta entonces, habilite las actualizaciones de ubicación en segundo plano o quédese con 5.3.1

Acabo de publicar una revisión (versión 5.3.2 + 1) que debería solucionar este problema. La opción para habilitar las actualizaciones de ubicación de Backgroup ahora es configurable usando la tecla EnableBackgroundLocationUpdates en su Info.plist (vea también el README.md en la sección de iOS).

Gracias a todos por ayudar a depurar esto. Por favor avíseme si vuelve a funcionar correctamente.

Corrección confirmada, cerrando el problema.

Hola, soy nuevo aquí usando servicios de geolocalización con flutter y encontré este proyecto, se ve bien, pero tengo un problema cuando trato de obtener la ubicación actual, la aplicación se detiene y se cierra después de presionar un botón simple para obtener la ubicación ...

Este es el código actual que uso en el controlador de eventos onPress en una clase ficticia:

GeolocationStatus geolocationStatus  = await Geolocator().checkGeolocationPermissionStatus();

if (geolocationStatus == GeolocationStatus.granted) {
  Position position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
  print('position $position');
}

y esta es la versión del paquete que estoy usando en pubspec.yaml :

geolocator: ^5.3.2+2

Y estas son las claves que he agregado al archivo info.plist :

  <!-- ...skipped by brevity -->
  <key>EnableBackgroundLocationUpdates</key>
  <true/>
  <key>NSLocationWhenInUseUsageDescription</key>
  <string>This app needs access to location when open.</string>
  <key>NSLocationAlwaysUsageDescription</key>
  <string>This app needs access to location when in the background.</string>
  <key>NSLocationAlwaysAndWhenInUsageDescription</key>
  <string>Always And In Use Permission</string>
  <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
  <string>This app needs access to location when open and in the background.</string>
  <!-- skipped by brevity... -->

@mvanbeusekom ¿ alguna idea de qué crees que estoy haciendo mal?

@mvanbeusekom , el enlace no parece funcionar y, aparte de este problema, no puedo encontrar ninguna referencia con respecto a EnableBackgroundLocationUpdates . Me encanta este paquete por cierto.

@markbeij , corrige que el enlace mencionado formaba parte de la versión 5.3.1. Actualmente estamos en una versión 6.1.6 muy mejorada que tiene una estructura de carpetas actualizada para admitir la arquitectura del complemento federado (lo que facilita las cosas para admitir múltiples plataformas).

El enlace actual al README.md es: https://github.com/Baseflow/flutter-geolocator/blob/master/README.md

La sección sobre el modo de fondo es:

Si desea recibir actualizaciones cuando su aplicación está en segundo plano, también deberá agregar la capacidad Modos en segundo plano a su proyecto XCode (Proyecto> Firma y capacidades> botón "+ Capacidad") y seleccionar Actualizaciones de ubicación. Tenga cuidado con esto, deberá explicar en detalle a Apple por qué su aplicación necesita esto cuando envíe su aplicación a la AppStore. Si Apple no está satisfecho con la explicación, su aplicación será rechazada.

Esto básicamente agregará el parámetro EnableBackgroundLocationUpdates a su Info.plist . Tenga en cuenta que el geolocalizador no admite la ejecución en segundo plano y no proporciona ninguna forma de recibir actualizaciones mientras se ejecuta en segundo plano. Por el momento, lo único que hará EnableBackgroundLocationUpdates es decirle a la plataforma que siga escuchando las actualizaciones de ubicación en la plataforma mientras la aplicación está en segundo plano (de lo contrario, no se llama ni se ejecuta nada).

¿Fue útil esta página
0 / 5 - 0 calificaciones