ios - jpg - formato aae
Reaccione de forma nativa utilizando un archivo pre-empaquetado en el dispositivo, incluso si está en modo DEV (7)
Como he enfrentado el mismo problema y los puntos anteriores no funcionaron para mí. Lo conseguí trabajando haciendo estos pasos.
- Vaya a xcode-> su proyecto-> info.plist
- En "Configuración de seguridad de transporte de aplicaciones", haga clic en "Permitir cargas arbitrarias" Sí.
debería solucionar este problema.
Hace unos días, cuando compilé y ejecuté mi aplicación nativa de reacción desde Xcode en un dispositivo, me di cuenta de que incluso si configuraba mi esquema en Depurar, la aplicación todavía se está cargando desde un archivo preempaquetado. Aparte de eso, todo lo demás es como el modo desarrollador. Puedo agitar el dispositivo y las ventanas emergentes del desarrollador, en la consola obtengo salida y reaccionar de forma nativa también los registros:
Ejecutando la aplicación "XXXXX" con appParams: {"rootTag": 1, "initialProps": {}}. DEV === true, las advertencias de nivel de desarrollo están activadas, las optimizaciones de rendimiento están desactivadas
Así que cuando trato de recargar desde el desarrollador, se vuelve a cargar pero con el mensaje
Cargando desde el archivo pre-empaquetado
He intentado eliminar la aplicación, verificar el esquema de depuración, limpiar la compilación y compilar y ejecutar nuevamente, sin ningún resultado diferente.
¿Alguien tiene una idea de lo que podría haber causado esto (he estado ejecutando la aplicación antes con Release Scheme, pero nunca tuve este problema), y cómo puedo volver a la normalidad?
Lamentablemente no sé cómo reproducir esto.
- Xcode: 8.2.1
- Reactivo-nativo: 0.40.0
¡Gracias por tu tiempo!
Resuelto
En mi caso, fue como @ while1 señaló con respecto al wifi. Mi dispositivo y computadora no estaban conectados al mismo wifi. Sin embargo, encontré una red en mi lugar de trabajo donde aún no funcionaba, incluso si tanto la computadora como el dispositivo estaban conectados a esta red (¿de alguna forma, protegido?). De todos modos, cuando compartí mi conexión de internet a mi computadora desde mi iPhone, la aplicación finalmente cargó los datos de mi computadora. Así que, efectivamente, el iPhone no pudo conectarse a mi computadora y, por lo tanto, cargar un archivo pre-empaquetado.
En mi caso, fue una configuración de red inesperada (para reaccionar de forma nativa), por lo que se repitió la IP incorrecta.
Compruebe el informe de compilación si su ip se ha detectado correctamente
En reaccionar nativo 0.40.0, React nativo intenta adivinar la ubicación del paquete por sí mismo. Por favor vea si los siguientes puntos pueden ayudar:
Asegúrese de que su AppDelegate.m tenga esta línea:
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]
;Comprueba tu dispositivo y tu Xcode mac funciona con el mismo wifi. Internamente para iOS, reaccione nativo, intente adivinar ip por sí mismo.
Intente ejecutar la aplicación primero a través de la línea de comandos, de modo que el servidor dev packager se esté ejecutando y luego ejecute la aplicación a través de xcode en su dispositivo.
Para aquellos que están conectados al mismo Wi-Fi, pero a una dirección IP diferente a localhost (lo has configurado en RCTWebSocketExecutor.m
):
Verifique la consola de depuración de Xcode, si puede encontrar el siguiente error:
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app''s Info.plist file.
Use la siguiente respuesta: https://.com/a/32704702/3979621
Y luego usa la respuesta de Codesingh. Por cierto, recomiendo usar la directiva
#ifdef DEBUG
siguiente manera, para que no tenga que cambiarla manualmente al cambiar entre las variantes de compilación:
.
#ifdef DEBUG
jsCodeLocation = [NSURL URLWithString:@"http://xxx.xxx.xxx.xxx:8081/index.ios.bundle?platform=ios&dev=true"];
#else
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
#endif
Para mí, accidentalmente había hecho clic en Denegar en lugar de Permitir en una ventana emergente de macos que preguntaba si aceptar conexiones de red entrantes a «nodo».
Abriendo las Preferencias del Sistema -> Seguridad y Privacidad -> Cortafuegos -> Opciones de Cortafuegos, y encontrando la línea para el nodo que se configuró para bloquear, luego corríjala para permitir que se resuelva mi problema.
Para mí, esto sucedió después de actualizar mi mac a Mojave. Resulta que, con la actualización, la configuración del firewall ha cambiado para bloquear todas las conexiones entrantes ... ¡Gracias, Stian Jensen, por dejarme al tanto de la comprobación de mi firewall!
Lo que hice:
- Abra Preferencias del sistema -> Seguridad y privacidad -> Firewall -> Opciones de firewall
- Desmarque "Bloquear todas las conexiones entrantes"
- Asegúrese de que las conexiones enumeradas sean de fuentes en las que confía
así que tu problema está aquí:
Cambie el código en su AppDelegate.m:
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; // comment this line
jsCodeLocation = [NSURL URLWithString:@"http://xxx.xxx.x.xx:8081/index.ios.bundle?platform=ios&dev=true"]; //uncomment this line
Aclamaciones:)