Flutter-geolocator: Localização não funciona no emulador IOS

Criado em 4 jun. 2020  ·  12Comentários  ·  Fonte: Baseflow/flutter-geolocator

🐛 Relatório de Bug

Comportamento esperado

Espere imprimir a posição, este é o código:
Geolocator geo = Geolocator ();
Posição pos =
aguarde geo.getCurrentPosition (desejadoAccuracy: LocationAccuracy.high);
imprimir (pos);

Etapas de reprodução

Funciona no emulador do Android - a posição é impressa no console.
Não funciona no emulador de iOS, nada é impresso e se eu adicionar outra instrução print após print (pos), ele também não imprime. Eu estou supondo que ele nunca alcançou a posição, então está "esperando" para sempre?

Configuração

Emulador de iPhone 11 no Android Studio

Versão: 1.x

Plataforma:
: iphone: iOS

ios in progress bug

Comentários muito úteis

@LarryJing Não consigo reproduzir este problema, você realmente simulou atualizações de localização? No simulador iOS, você precisa definir ativamente um local usando a seguinte opção de menu: "Recursos" -> "Local":

Screenshot 2020-06-04 at 13 21 49

Todos 12 comentários

@LarryJing Não consigo reproduzir este problema, você realmente simulou atualizações de localização? No simulador iOS, você precisa definir ativamente um local usando a seguinte opção de menu: "Recursos" -> "Local":

Screenshot 2020-06-04 at 13 21 49

sim, também recebi um erro neste plugin no simulador ios. Estou recebendo este log no console.
Screenshot 2020-06-04 at 6 42 49 PM

sim, também recebi um erro neste plugin no simulador ios. Estou recebendo este log no console.
Screenshot 2020-06-04 at 6 42 49 PM

Eu também tenho o mesmo erro.

`` `flutter médico
[✓] Flutter (canal estável, v1.17.2, no Mac OS X 10.15.4 19E287, local en-JP)

[✓] Conjunto de ferramentas Android - desenvolver para dispositivos Android (Android SDK versão 29.0.3)

[✓] Xcode - desenvolvido para iOS e macOS (Xcode 11.5)
[✓] Android Studio (versão 4.0)
[!] IntelliJ IDEA Ultimate Edition (versão 2018.2.2)
✗ Plugin Flutter não instalado; isso adiciona funcionalidade específica de Flutter.
✗ Plug-in Dart não instalado; isso adiciona funcionalidades específicas do Dart.
[✓] Código VS (versão 1.45.1)
[✓] Dispositivo conectado (1 disponível)
`` `

versão: geolocator: 5.3.2

simulador: iPhone 11 / Software Version 13.5

o erro não ocorre quando a versão do módulo muda para 5.3.1 .

Screenshot 2020-06-04 at 8 15 06 PM
Ao adicionar permissão de atualização de localização, este problema resolve

Eu também estou correndo para isso. Não quero solicitar localização em segundo plano, apenas em primeiro plano. Espero que isso signifique que não preciso ativar um modo de segundo plano.

Na verdade, este é um erro que foi publicado por engano. Vou corrigi-lo mais tarde hoje / amanhã. Até então, habilite as atualizações de localização em segundo plano ou continue com 5.3.1

Acabei de lançar um hotfix (versão 5.3.2 + 1) que deve corrigir esse problema. A opção de habilitar atualizações de localização de Backgroup agora é configurável usando a chave EnableBackgroundLocationUpdates em seu Info.plist (veja também o README.md na seção iOS).

Obrigado a todos por ajudarem a depurar isso. Por favor, deixe-me saber se ele funciona corretamente novamente.

Correção confirmada, fechando o problema.

Olá, sou novo aqui usando serviços de geolocalização com flutter e encontrei este projeto, parece bom, mas tenho um problema quando tento obter a localização atual, o aplicativo para e fecha ao pressionar um simples botão para obter a localização ...

Este é o código atual que uso no manipulador de eventos onPress em uma classe fictícia:

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

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

e esta é a versão do pacote que estou usando em pubspec.yaml :

geolocator: ^5.3.2+2

E estas são as chaves que adicionei ao arquivo 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 alguma ideia do que você acha que estou fazendo de errado?

@mvanbeusekom , o link não parece funcionar e, além desse problema, não consigo encontrar nenhuma referência a respeito de EnableBackgroundLocationUpdates . Amo este pacote btw ..

@markbeij , corrija o link mencionado que fazia parte da versão 5.3.1. Atualmente, estamos em uma versão 6.1.6 muito melhorada, que possui uma estrutura de pastas atualizada para oferecer suporte à arquitetura de plug-in federado (o que torna mais fácil suportar várias plataformas).

O link atual para README.md é: https://github.com/Baseflow/flutter-geolocator/blob/master/README.md

A seção sobre o modo de fundo é:

Se desejar receber atualizações quando seu aplicativo estiver em segundo plano, você também precisará adicionar o recurso Modos de segundo plano ao seu projeto XCode (Projeto> Assinatura e recursos> botão "+ Recurso") e selecionar Atualizações de local. Tenha cuidado com isso, você precisará explicar em detalhes à Apple por que seu aplicativo precisa disso ao enviar seu aplicativo para a AppStore. Se a Apple não ficar satisfeita com a explicação, seu aplicativo será rejeitado.

Isso basicamente adicionará o parâmetro EnableBackgroundLocationUpdates ao seu Info.plist . Observe que o geolocalização não é compatível com a execução em segundo plano e não fornece nenhuma maneira de receber atualizações durante a execução em segundo plano. No momento, a única coisa que EnableBackgroundLocationUpdates fará é dizer à plataforma para continuar ouvindo as atualizações de localização na plataforma enquanto o aplicativo está em segundo plano (nada é chamado ou executado de outra forma).

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jaumard picture jaumard  ·  3Comentários

joesnarky picture joesnarky  ·  3Comentários

lqmminh picture lqmminh  ·  6Comentários

deisold picture deisold  ·  3Comentários

prasant10050 picture prasant10050  ·  6Comentários