Abordar los nuevos requisitos HTTPS en Flutter según Lew C | Comunidad revoloteando Octubre de 2020

La nueva beta contiene varias sorpresas inesperadas

Una foto de Florian Berger en Unsplash

A partir de esta mañana, después de actualizar mi instalación beta de Flutter, se niega a cargar los recursos de HTTP con este error:

Unhandled error Bad
state: Insecure HTTP is not allowed by platform

Si estás aquí porque buscaste en Google furiosamente la solución y no te importa por qué está roto y solo quiere arreglarlo, esto es lo que puede hacer:

  1. Ve a tu proyecto
  2. Ir yourapp android app src debug AndroidManifest.xml
  3. Agregar esta línea
<application android:usesCleartextTraffic="true">

</application>

4. Cree su aplicación de depuración e impleméntela en su dispositivo seleccionado. Debería funcionar ahora.

Desde el cambio en dart_sdk El mes pasado, se verifican las conexiones salientes para ver si se permiten sus conexiones HTTP de texto sin formato. Puedes ver el compromiso que incluye este cambio aquí. Para ser precisos, estas son las líneas concretas que nos causan dolor:

Un cheque que falla para nosotros es un cheque para isInsecureConnectionAllowed . La documentación de la API sobre cómo funciona esta característica es aquí, pero básicamente permite conexiones de host local, pero No conexión 10.0.2.2, que usa su emulador de Android para conectarse a su computadora local. La única forma de permitir esto es si su aplicación requiere específicamente el uso de una conexión HTTP con texto sin cifrar. Cuando actualizamos la depuración AndroidManifest.xml , nuestras compilaciones de depuración están explícitamente permitidas para usar tráfico de texto sin formato, pero nuestras compilaciones de lanzamiento tienen el mismo requisito de HTTPS.

Si me preguntas, el HTTPtext en la configuración de depuración debería estar bien, pero por supuesto debería fallar en la versión. La única razón por la que creo que esto es porque es muy difícil instalar certificados raíz SSL CA en el emulador de Android y usar HTTPS en desarrollo, y la ventaja es que su tráfico local está encriptado. Siempre deben ser solo datos falsos, por lo que transmitirlos a través de HTTP localmente no es un problema tan grande (para mí, sus pensamientos aún pueden ser diferentes).

Si hay pasos para que iOS resuelva esto, estoy actualizando este artículo. Hasta entonces, ¡feliz aleteo!

https://www.twitter.com/FlutterComm

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *