Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Configuração de Proxy no Flutter

Pessoal estou com uma dúvida/problema no flutter (em ambiente linux).

Estou com dificuldades para executar o comando "flutter run". Sempre que eu tento executar, o proxy recusa a conexão ("HTTP/1.0 407 Proxy Authentication Required"), como se eu não estivesse com o usuário e senha de proxy configurados.

Acontece que meu usuário e senha de proxy estão configurados (OBS: eu uso o Linux Fedora): 1 - estão configurados no arquivo /etc/dnf/dnf.conf 2 - estão configurados no arquivo ~/.bashrc (neste arquivo estão configurados as variáveis de ambiente HTTP_PROXY=http://USUARIO:SENHA@proxy.XXX.gov.br:3128 , HTTPS_PROXY=http://USUARIO:SENHA@proxy.XXX.gov.br:3128 e NO_PROXY=localhost,127.0.0.0/8,::1,.XXX.gov.br,.XXX.jus.br 3 - estão configurados no arquivo ~/.gradle/gradle.properties (arquivo global onde o gradle busca, entre outras, as configurações de proxy).

Neste ponto faço uma observação. Com as configurações que citei acima, em minha experiência desenvolvendo para Android UTILIZANDO a linguagem Java e o Android Studio, tudo funciona muito bem (o gradle consegue baixar dependências através do proxy)

Como as configurações que citei acima não funcionaram com o flutter (ao menos para mim, em meu ambiente) tentei configurar o proxy nos arquivos:

1 - DIRETORIO_PROJETO/android/gradle.properties 2 - DIRETORIO_PROJETO/android/local.properties

Após essa configuração, o comando flutter run CONTINUA a não funcionar (apresenta o mesmo erro - "HTTP/1.0 407 Proxy Authentication Required").

Dito tudo isso, pergunto:

1 - O comando flutter run utiliza o gradle ppara executar? Se sim, onde ele lê as configurações de proxy que são aplicadas/utilizadas pelo gradle? (NORMALMENTE o gradle lê as configurações de proxy em ~/.gradle/gradle.properties) 2 - Caso o O comando flutter run NÃO utilize o gradle, onde o comando flutter run lê as configurações de proxy? De qual arquivo ?

1 resposta
solução!

Bom dia Marcelo, mexer com proxy em flutter requer alguns passinhos a mais, dado que estamos alterando o fluxo da comunicação. Algumas pessoas costumam usar pacotes para implementar o proxy, fazer manualmente é possível ( alterando o gradle e algumas configurações no Device) mas como você pode ver é uma dor de cabeça.

Sugiro você dar uma olhada nesse artigo do Gordon Hayes que explica tudo que precisamos saber sobre o que é e como implementar o proxy no flutter.

https://blog.funwith.app/posts/proxy-flutter-apps/

Esse é um assunto mais avançado e eu fico feliz por termos um aluno com essa dedicação :)

Quanto a sua pergunta sobre o gradle:

O flutter run usa sim o gradle para executar, porem só precisamos alterar ele em algumas situações específicas quando instalamos novos pacotes ( tipo suporte ao firebase), no caso do proxy, não precisamos alterar diretamente o gradle uma vez que podemos resolver o problema com um pacote que faz as configurações necessarias.

Não consigo te responder de imediato aonde os pacotes alteram as configurações do flutter, mas se você quiser continuar configurando manualmente, pode me dar um toque aqui que eu já vou ter a resposta pra você ^^.

Espero ter ajudado.