¿Cuál es el significado de 'No hay URL de paquete presente' en react-native?


199

Cuando ejecuto un proyecto nativo de reacción, aparece un error no bundle URL present, pero no sé qué errores cometo, estaba muy confundido.

enter image description here


2
Me enfrenté a este problema en la aplicación nativa de iOS. Simplemente abra el xcodeproj en la carpeta ios en xcode y ejecútelo desde allí. Asegúrate de no estar en proxy.
Abhay Shiro

9
La mayoría de las veces, limpiar el directorio de compilación me ayudarm -rf ios/build/
onmyway133

Eso me ayuda en la mayoría de las situaciones. Pero en este caso en particular pude corregir este error con este comando (react-native: "0.60.4"):watchman watch-del-all
O. Borcuhin

Por lo general, significa que su paquete de metro no se está ejecutando, algunas personas lo ejecutan en sus propios terminales o en el terminal estándar de la computadora. Normalmente cierro el terminal, reinicio la aplicación y eso lo soluciona.
Sara Inés Calderón

Respuestas:


128

Resuelve el error No bundle URL presentde la siguiente manera:

  • Ejecute el siguiente comando en el directorio raíz de su proyecto para eliminar el directorio de compilación de iOS y eliminar otras sesiones React Native (suponiendo que se ejecuten en el puerto predeterminado 8081) antes de volver a compilar:

rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios

  • Actualice su flujo de trabajo React Native para evitar que ocurran estos errores combinando la combinación de comandos anterior en un alias y anexándola a su archivo de configuración de Bash .bashrc con este comando:

echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc

Ahora puede ejecutar la compilación React Native iOS (sin preocuparse de que aparezcan algunas de las pantallas de error rojas comunes de muerte) con un simple acceso directo de alias:

rni


1
Muy util para mi. Lo único que tenía que hacer era salir del simulador si aún no estaba cerrado.
AnnawanDev

74

También me encontré con este problema (la primera vez que comencé con React Native). El problema desapareció cuando, mientras react-native run-iosse ejecutaba una simulación ios ( ), ejecuté npm instally luego react-native run-iosotra vez. En la ventana de terminal, mostró que se estaba agrupando, y luego el simulador mostró la pantalla de bienvenida.

Verifique este enlace para ver breves después de la react-native init PropertyFinderlínea que intente usar npm start(este funciona para mí)

================================================== ======================

ACTUALIZACIÓN para 16.9

Mi puerto 8081 fue bloqueado por McAfee. Usar un puerto diferente directamente no funcionaba react-native start --port=8082yreact-native run-ios --port=8082

Intenté casi todas las soluciones dadas aquí. Pero nada funcionó.

        "react": "16.9.0",
        "react-dom": "^16.12.0",
        "react-native": "0.61.5",

Solución:

Busqué 8081 en Xcode y los reemplazó por 8082. Luego ejecute los mismos comandos para compilar y ejecutar la aplicación. La aplicación funciona sin problemas

react-native start --port=8082
react-native run-ios --port=8082

ingrese la descripción de la imagen aquí


2
@dcp ¿Has intentado ejecutar "react-native run-ios" varias veces mientras ya está arrancado? Parece que cada vez que giro mi aplicación, necesito hacerlo al menos dos veces (esperando unos 2 minutos entre cada vez).
Saltar Suva

funciona para mí, pero me encantaría encontrar una solución a largo plazo que no involucrara este paso cada vez.
mheavers 05 de


29

Como se indica en el mensaje de error:

Aceptar la licencia Xcode / iOS requiere privilegios de administrador, ejecute "sudo xcodebuild -license" y vuelva a intentar este comando.

Ejecutar el siguiente comando funcionó:

sudo xcodebuild -license

tks esto es trabajo para mí después de ejecutar en la terminal y construir en xcode después
tess hsu

No Todavía no funciona para mí. Estoy corriendo en un puerto diferente, 8081 está bloqueado
Ashish Singh Rawat

27

Este problema ocurre cuando no permite conexiones no seguras a través de localhost, o tal vez intenta aceptar conexiones no seguras a través de http.

Para solucionar esto, agregue esto en info.plist:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>

44
Qué héroe es este tipo. ¡Me salvó a mí y a mi macbook de saltar por la ventana! Cambié mi dominio de excepción de localhosta mi dirección de red local en Info.plist y, por lo tanto, no se resolvió. Agregué un bloque para 'localhost' como dominio de excepción y funcionó.
Darius

1
En serio, tu respuesta me llegó como un dios ... hermano, tu rock ... No tengo palabras. gracias, me quedé atrapado desde el jueves.
Tushar Pandey

26

Cierra tu simulador y la terminal. Abra uno nuevo y vaya a su proyecto, luego actualice su react-native de esta manera:

react-native upgrade

Problema en: recursión infinita en RCTFatal cuando el paquete no se ejecuta .


1
Sí, pero en mi caso no necesitaba actualizar. Cerrar terminal y simulador fue suficiente para mí.
gianni

@gianni ¿Qué versión de react-native está ejecutando ahora?
Mateo Marconi

1
No parecía haber ninguna diferencia, todavía veo el error.
SSH Este

2
Esto funcionó para mí, pero también debes cerrar el simulador y luego ejecutar react-native run-ios
James O'Brien el

1
No ayudó `` '' información No se aprobó ninguna versión. Obteniendo la última ... advertencia La versión especificada "0.61.5" ya está instalada en node_modules y satisface el rango semver "0.61.5". No es necesario actualizar `` ''
Ashish Singh Rawat

19

Razón:

Esto se debe a que la aplicación no puede encontrar el servidor (que sirve la interfaz de usuario, por código javascript).

Solución:

  • Asegúrese de que todo lo relacionado con reaccionar nativo cerrado (no es necesario, solo para tener un inicio limpio para mi solución, después de mi explicación, puede darse cuenta de que esto es necesario o no)
  • correr npm run starto yarn startprimero
  • espera a que este comando termine el trabajo (normalmente verás Loading dependency graph, done. )
  • correr react-native run-ios/android

Explicación:

  • React Native viene con 2 partes:

    • Parte nativa
    • Parte Javascript
  • Comandos de compilación:

    • react-native run-ios/androides construir una parte nativa y luego implementarla en dispositivos e iniciar la aplicación en dispositivos (simulador / emulador / dispositivo real). Esto usualmente tomó 3 ~ 4 minutos para terminar.

    • npm run starto yarn startes construir la parte de JavaScript e iniciar el servidor de desarrollo para servir la interfaz de usuario integrada a la aplicación. Esto usualmente tardó 30 segundos en terminar.

=> Normalmente, la parte de JavaScript terminó primero y luego la parte nativa vino después. (según el tiempo que usaban).

=> esto solo es cierto por primera vez build (nueva compilación).

=> para reconstruir:

  • La parte nativa solo tardó entre 10 y 15 segundos en verificar los cambios y porque no se realizó ningún cambio para la parte nativa => antes de que se construyera y sirviera la parte de JavaScript. (No estoy seguro de que la parte de JavaScript se haya reconstruido o no, pero tomó mucho tiempo que la parte nativa)

  • Por eso tuvimos este problema, la aplicación se ejecutó y requería algo que aún no existía.

Prima:

  • react-native run-ios/android iniciará automáticamente el servidor de desarrollo por usted.
  • Por eso cuando corriste react-native run-ios/androidjusto despuésreact-native init <app_name> , todo salió bien. (porque la función de inicio automático y el tiempo se tomaron para una compilación nueva como el estado anterior).
  • Otras soluciones de "eliminación" funcionaron porque forzaron la reconstrucción.

El tiempo utilizado en esta respuesta fue relativo a mi máquina => puede ser diferente en otros.


14

Intenta ejecutar este código:

$ sudo xcodebuild -license

Esto puede solucionar el problema. Esto funciona para mi.


11

Tuve el mismo error y pude ejecutar la aplicación solo a través de Xcode. react-native run-iosno funcionó. Para resolver el problema, debe eliminar la buildcarpeta en YOUR_PROJECT/ios/build/. Después de esto, debería poder ejecutar su aplicación react-native run-iosnuevamente. Espero que esto ayude.


9

En la mayoría de los casos, este problema ocurre cuando la búsqueda de DNS / IP no puede encontrar localhost.

Solución:

Intente agregar la IP localhost a su archivo de host, etc.

puede agregar las siguientes líneas a su archivo de host, etc. (/ etc / hosts)

127.0.0.1 localhost

255.255.255.255 broadcasthost

:: 1 l. Ocalhost

Para confirmar que este es el problema , puede presionar la URL del paquete en Safari (si lo prueba en Chrome, esto se resolverá, pero Safari no podrá resolverlo). http: // localhost: 8081 / index.ios.bundle? platform = ios & dev = true & minify = false


Después de migrar a una computadora nueva, esto era lo que necesitaba. TY!
jeffctown

¡Sí, lo mismo aquí en una computadora nueva!
Vishal Sakaria

Mi problema era establecer el proxy en la configuración de mi red, simplemente elimino el proxy y funciona bien.
Ahmad Khani el

8

Asegúrese de que su configuración ATS sea correcta en el archivo .plist.

Puedes encontrar el archivo en /ios/{{project_name}}/Info.plist

localhost debe definirse como un objetivo de solicitud de excepción como este:

<key>NSAppTransportSecurity</key>
    <dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

* (no olvide eliminar esto en la versión de lanzamiento ..)


7

Para mí, el problema era que no podía crear el paquete JS. No indica el error al construir desde Xcode, por lo que no hay forma de que lo sepas. Para encontrar el error, ejecute el siguiente comando.

react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle

Para mí, el error fue algo con falta del componente PureRenderMixin. Para lo cual puede encontrar la solución aquí: https://github.com/facebook/react-native/issues/13078 . Básicamente, debe instalar manualmente react@16.0.0-alpha.3. Esto se puede hacer mediante la ejecución de este comando.

npm i --save react@16.0.0-alpha.3

Este problema ahora está sucediendo para todos porque se están lanzando versiones más nuevas de react alphas (particularmente alpha.5) y están rompiendo las compilaciones react-native.


el comando 'react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/ main.jsbundle 'describirá cualquier error en la construcción del paquete. hasta que este comando sea exitoso, run-ios no funcionará
eric f.

mi error actual es que el '@connect' de 'react-redux' no se reconoce de alguna manera?
eric f.

Tal vez intente agregar "plugins": ["transform-decorators-legacy"]a su archivo .babelrc. O pruébelo con el HOC de conexión.
urbancvek

@urbancvek, para mí el error es esto The node type SpreadProperty has been renamed to SpreadElementy su @babelbiblioteca de referencia dentro node_modules, no he encontrado nada que haya abordado esto.
Daniel

7

Solución -> npm startluego abra una nueva Terminal y vaya a la ruta de su proyecto y luego presione react-native run-ios, funciona para mí


7

Lo que me resolvió:

  • Abrir una ventana de terminal
  • cd dentro YOUR_PROJECT/ios
  • Eliminar la carpeta de compilación con rm -r build
  • Corre de react-native run-iosnuevo

Alternativamente, puede abrir Finder, navegar YOUR_PROJECT/iosy eliminar la buildcarpeta.

Luego corre de react-native run-iosnuevo.

Fuente: Andrew Bancroft


5

Este es un problema con react-native v0.42.1. Intente cerrar todas las instancias de terminal y XCode y ejecute:

launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios

3
"Este es un problema con react-native v0.42.1". También existe con v.0.43.
dcp


5

Solo corre en la Terminal react-native start:

cd your react native app directory/ react-native start 

Se iniciará el empaquetador, ahora no cierre esta ventana de terminal, en otra ventana de terminal ejecute su proyecto. Este es el único deseo que encontré para que funcione correctamente.


4

He encontrado que la forma más fácil / rápida de evitar esto es salir de la aplicación dentro del simulador (2 x Cmd + Shift + H) y volver a iniciarla.


4

Tuve el mismo problema. Pero mi problema era que mi Mac y mi iPhone no estaban en la misma red wifi.

Así que asegúrese de que todos estén en la misma red y reconstruya nuevamente. Si este no es el caso, pruebe las soluciones mencionadas por otros miembros aquí.


3

verifique su proxy de red, mejor apáguelo.

o deberías encontrar otra forma de mantener el servidor del empaquetador


¡Gracias, abrí la VPN global para cruzar el Gran Muro de Fuego!
BaiJiFeiLong

Deshabilité la configuración automática de proxy en Mac. Funcionó después de 2 días de esfuerzos: D ... Gracias.
Nirav Jain

De hecho, estaba ejecutando una VPN que ni siquiera recordaba. ¡apagarlo funcionó!
Pedro Marques

3

También me ha sucedido después de reiniciar mi mac. Hay una ventana de terminal launchPackager que se abre cuando ejecuta su aplicación en el simulador. Cerré esa ventana y terminé el proceso (también oculté el simulador), luego ejecuté nuevamente react-native run-ios y todo funciona bien.


3

En mi caso, el problema se solucionó reiniciando el adbservidor:adb kill-server && adb start-server


3

También tuve este problema para mí ... el problema era que el empaquetador no se estaba ejecutando, probablemente porque mi shell predeterminado era zsh. reacciona a los neumáticos nativos para abrir una nueva ventana de terminal y ejecutar .../node_modules/react-native/packager/launchPackager.commandpero esto no funcionó Ejecutarlo manualmente (y mantenerlo en funcionamiento) me solucionó esto.


3

verifique su clave 'localhost' en NSExceptionDomains dict en info.plist

Si no existe, causa un error.


2

Suponiendo que está utilizando nvmy que hay varias versiones de nodo instaladas, esta es la solución:

  1. Di que corres npm install -g react-native-cliennode v6.9.5 .
  2. Ahora hacer node v6.9.5 como predeterminado ejecutandonvm alias default 6.9.5
  3. Ahora corre react-native run-ios

El problema es que tiene varias versiones de nodo instaladas a través de nvmy para instalar react-native-cliha cambiado o instalado la última versión del nodo, que aún no está marcado como nodo predeterminado para señalar nvm. Cuando ejecuta react-native run-iosesto, se abre otra nueva ventana de terminal en la que el valor predeterminado nvmno apunta a la versión del nodo donde ha instalado react-native-cli. Simplemente siga la configuración anterior, espero que eso ayude.


2

asegúrese de tener .jsbundle en su proyecto

Añadir

react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios

en su código nativo de reacción, intente volver a abrir el proyecto


1

Estoy trabajando con RN 0.49.5. He probado muchos métodos, pero nadie funciona. Finalmente resolví esto. Es simple y fácil.

La idea principal es cambiar el localhosta 127.0.0.1, pero no es donde el RN te lo dice. Está en RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) host .

Cambios de código: oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1"; esto está bien para el simulador. Si es un dispositivo, simplemente cambie la dirección IP a la de su máquina.


¿Podría dar más detalles sobre su solución?
Ashish Singh Rawat

1

Otra cosa que funciona para mí es abrir el proyecto en xcode y luego limpiarlo y compilarlo. normalmente vuelve a ejecutar el servidor de empaquetado y resuelve el problema.


1

Ejecute el siguiente comando:

killall -9 node
rm -rf ios/build
react-native run-ios

abrirá launchpackager.command y la aplicación se instalará en el simulador de ios


0

Asegúrese de que se launchPackage.commandesté ejecutando en una terminal e intente ejecutar nuevamente. Construirá el paquete. Es un poco como webpack-dev-server.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.