Qual è il significato di "Nessun URL bundle presente" in React-native?


199

Quando eseguo un progetto di reazione nativo, ricevo un errore no bundle URL present, ma non so quali errori faccio, ero molto confuso.

inserisci qui la descrizione dell'immagine


2
Ho riscontrato questo problema con l'app iOS nativa reattiva. Basta aprire xcodeproj nella cartella ios in xcode ed eseguirlo da lì. Assicurati di non essere in procura.
Abhay Shiro

9
Il più delle volte, svuotare la directory di build mi aiutarm -rf ios/build/
onmyway133,

Questo mi aiuta nella maggior parte delle situazioni. Ma in questo caso particolare sono stato in grado di correggere questo errore con questo comando (reattivo: "0.60.4"):watchman watch-del-all
O. Borcuhin,

Di solito significa che il tuo bundler metro non è in esecuzione, alcune persone lo eseguono nei propri terminali o sul terminale del computer standard. Di solito chiudo il terminale, riavvio l'app e questo lo risolve.
Sara Inés Calderón,

Risposte:


128

Risolvi l'errore No bundle URL present:

  • Eseguendo il comando seguente nella directory principale del progetto per eliminare la directory di build iOS e per eliminare altre sessioni React Native (supponendo che siano in esecuzione sulla porta predefinita 8081) prima di ricostruire:

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

  • Aggiorna il tuo flusso di lavoro React Native per evitare che si verifichino questi errori combinando la combinazione di comandi di cui sopra in un alias e aggiungendolo al tuo file di configurazione di Bash .bashrc con questo comando:

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

Ora puoi eseguire React Native iOS build (senza preoccuparti di alcune delle comuni schermate di errore rosse che appaiono) con un semplice collegamento alias:

rni


1
Molto utile per me L'unica altra cosa che dovevo fare era uscire dal simulatore se non era già chiuso.
AnnawanDev,

74

Mi sono appena imbattuto in questo problema (per la prima volta con React Native). Il problema è scomparso quando - mentre react-native run-iosera in esecuzione una simulazione iOS ( ) - ho corso npm installe poi di react-native run-iosnuovo. Nella finestra del terminale, ha mostrato che era raggruppato, quindi il simulatore ha mostrato la schermata di benvenuto.

Controlla questo link per riassunti dopo la react-native init PropertyFinderriga prova a utilizzare npm start(Questo funziona per me)

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

AGGIORNAMENTO per 16.9

La mia porta 8081 è stata bloccata da McAfee. L'uso diretto di una porta diversa non funzionava react-native start --port=8082ereact-native run-ios --port=8082

Ho provato quasi tutte le soluzioni fornite qui. ma niente non ha funzionato.

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

Soluzione:

Ho cercato 8081 in Xcode e li ha sostituiti tutti con 8082. Quindi esegui gli stessi comandi per compilare ed eseguire l'app. L'app funziona senza problemi

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

inserisci qui la descrizione dell'immagine


2
@dcp Hai provato a eseguire "reag-native run-ios" più volte mentre è già avviato? Sembra che ogni volta che accendo la mia app devo farlo almeno due volte (aspettando circa 2 minuti tra una volta e l'altra).
Salta Suva il

funziona per me, ma mi piacerebbe trovare una soluzione a lungo termine che non comportasse questo passaggio ogni volta.
mheavers,

31

Ho avuto lo stesso problema quando ho raggruppato la mia app. Verifica che il tuo main.jsbundlesia mirato al tuo Progetto principale


3
Questo in qualche modo è successo a me come parte del mio aggiornamento 0.60 reattivo.
IonicBurger,

collegamento video per lo stesso, youtube.com/watch?v=eCs2GsWNkoo
jrhamza,

questo è successo anche a me. ma poi ho cliccato su di esso. ma sempre lo stesso problema
Jason G,

29

Come indicato nel messaggio di errore:

Accettare la licenza Xcode / iOS richiede i privilegi di amministratore, eseguire "sudo xcodebuild -license" e quindi riprovare questo comando.

L'esecuzione del comando seguente ha funzionato:

sudo xcodebuild -license

tk questo funziona per me dopo l'esecuzione nel terminale e
compilato

No. Continuo a non funzionare per me. Sto correndo in un altro porto, l'8081 è bloccato
Ashish Singh Rawat,

27

Questo problema si verifica quando non si consentono connessioni non sicure tramite localhost o si tenta di accettare connessioni non sicure tramite http.

Per risolvere questo problema, aggiungilo su info.plist:

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

4
Che eroe questo ragazzo è. Ho salvato me e il mio macbook dal saltare fuori dalla finestra! Avevo cambiato il mio dominio di eccezione da localhostal mio indirizzo di rete locale in Info.plist e quindi non si stava risolvendo. Ho aggiunto un blocco per "localhost" come dominio di eccezione e ha funzionato.
Dario

1
Seriamente la tua risposta è arrivata come dio per me .... fratello tu rock ..... non ho parole. grazie, l'ho bloccato da giovedì.
Tushar Pandey,

26

Chiudi il simulatore e il terminale. Aprine uno nuovo e vai al tuo progetto, quindi aggiorna il tuo reagente nativo in questo modo:

react-native upgrade

Problema: ricorsione infinita in RCTFatal quando l'esecuzione del bundle non viene eseguita .


1
sì, ma nel mio caso non ho avuto bisogno di aggiornare. Chiudere il terminale e il simulatore è stato abbastanza per me.
Gianni,

@gianni Quale versione di React-native stai eseguendo ora?
Mateo Marconi,

1
Non sembrava fare alcuna differenza, vedendo ancora l'errore.
SSH Questo

2
Questo ha funzionato per me, ma devi chiudere anche il simulatore e quindi eseguire run-ios di reazione nativo
James O'Brien,

1
Non ha aiutato `` info Nessuna versione passata. Recupero dell'ultimo ... avviso La versione specificata "0.61.5" è già installata in node_modules e soddisfa l'intervallo semver "0.61.5". Non è necessario aggiornare ``
Ashish Singh Rawat il

19

Motivo:

Questo perché l'app non è in grado di rilevare il server (che serve l'interfaccia utente - tramite codice javascript).

Soluzione:

  • Assicurati che tutto ciò che riguarda la reazione nativa sia chiuso (non necessario, solo per avere un inizio pulito per la mia soluzione, dopo la mia spiegazione, puoi capire che è necessario o no)
  • corri npm run startoyarn start prima
  • attendere che questo comando abbia completato il lavoro (di solito vedrai Loading dependency graph, done. )
  • correre react-native run-ios/android

Spiegazione:

  • React Native viene fornito in 2 parti:

    • Parte nativa
    • Parte Javascript
  • Comandi di costruzione:

    • react-native run-ios/androidconsiste nel costruire una parte nativa, quindi distribuirla sui dispositivi e avviare l'app sui dispositivi (simulatore / emulatore / dispositivo reale). Questo di solito impiegava 3 ~ 4 minuti per finire.

    • npm run starto yarn startè quello di costruire la parte javascript e avviare il server dev per servire l'interfaccia utente costruita per l'app. Questo di solito impiegava 30 secondi per finire.

=> Normalmente, la parte javascript è terminata prima, poi è arrivata la parte nativa. (basato sul tempo che hanno usato).

=> questo vale solo per la prima volta build (build nuova).

=> per ricostruzione:

  • La parte nativa ha impiegato solo 10 ~ 15 secondi per verificare le modifiche e perché nessuna modifica per la parte nativa => è stata eseguita prima che la parte javascript fosse creata e pubblicata. (Non sono sicuro che la parte javascript sia stata ricostruita o meno ma ci è voluto molto tempo rispetto alla parte nativa)

  • Ecco perché abbiamo riscontrato questo problema, l'app ha funzionato e ha richiesto qualcosa che non esisteva ancora.

Bonus:

  • react-native run-ios/android avvierà automaticamente il server di sviluppo per te.
  • Ecco perché quando hai corso react-native run-ios/androidsubito dopo react-native init <app_name>, tutto ha funzionato bene. (perché la funzione di avvio automatico e il tempo sono stati necessari per la nuova generazione come stato sopra).
  • Altre soluzioni di "rimozione" hanno funzionato perché hanno costretto la ricostruzione.

Il tempo impiegato per questa risposta era relativo alla mia macchina => potrebbe essere diverso su altri.


14

Prova a eseguire questo codice:

$ sudo xcodebuild -license

Questo potrebbe risolvere il problema. Questo funziona per me.


11

Ho avuto lo stesso errore ed è stato in grado di eseguire l'app solo tramite Xcode. react-native run-iosnon ha funzionato. Per risolvere il problema è necessario rimuovere la buildcartella in YOUR_PROJECT/ios/build/. Successivamente, dovresti essere in grado di eseguire react-native run-iosnuovamente l'app . Spero che questo ti aiuti.


9

La maggior parte dei casi questo problema si verifica quando la ricerca DNS / la ricerca IP non riesce a trovare localhost.

Soluzione:

Prova ad aggiungere l'IP localhost al tuo file host etc.

puoi aggiungere le seguenti righe al tuo file host etc (/ etc / hosts)

127.0.0.1 localhost

255.255.255.255 broadcasthost

:: 1 l. ocalhost

Per confermare che questo è il problema , puoi toccare l'URL del pacchetto su Safari (se lo provi in ​​Chrome, questo si risolverà, ma Safari non sarà in grado di risolverlo). http: // localhost: 8081 / index.ios.bundle piattaforma = ios & dev = true & minify = false


Dopo aver migrato su un computer nuovo di zecca, questo era quello di cui avevo bisogno. TY!
jeffctown,

Sì lo stesso qui su un nuovo computer!
Vishal Sakaria,

Il mio problema era impostare il proxy sulla mia configurazione di rete, rimuovo solo il proxy e funziona bene.
Ahmad Khani,

8

Assicurati che le tue impostazioni ATS siano corrette nel file .plist.

Puoi trovare il file su /ios/{{project_name}}/Info.plist

localhost deve essere definito come destinazione della richiesta di eccezione in questo modo:

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

* (non dimenticare di rimuoverlo dalla versione di rilascio ..)


7

Per me il problema era che non era possibile creare il bundle JS. Non indica l'errore durante la compilazione da Xcode, quindi non c'è modo di saperlo. Per trovare l'errore, eseguire il comando seguente.

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

Per me l'errore era qualcosa con il componente PureRenderMixin mancante. Per cui è possibile trovare la soluzione qui: https://github.com/facebook/react-native/issues/13078 . Fondamentalmente devi installare manualmente reag@16.0.0-alpha.3. Questo può essere fatto eseguendo questo comando.

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

Questo problema si sta verificando per tutti perché sono state rilasciate versioni più recenti di alfa di reazione (in particolare alpha.5) e stanno rompendo le build di reazione native.


il comando 'bundle reazioni-native --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/ main.jsbundle "descriverà qualsiasi errore nella creazione del pacchetto. fino a quando questo comando non avrà successo, run-ios non funzionerà
eric f.

il mio errore attuale è che "@connect" di "reply-redux" non è in qualche modo riconosciuto?
eric f.

Forse prova ad aggiungere "plugins": ["transform-decorators-legacy"]al tuo file .babelrc. Oppure provalo con l'HOC di connessione.
urbancvek,

@urbancvek, per me l'errore è questo The node type SpreadProperty has been renamed to SpreadElemente la sua @babellibreria di riferimento all'interno di node_modules, non ho trovato nulla che abbia risolto questo problema.
Daniel,

7

Soluzione -> npm startquindi apri il nuovo Terminale e vai al percorso del tuo progetto, quindi premi react-native run-iosper me funziona


7

Cosa mi ha risolto:

  • Apri una finestra del terminale
  • cd in YOUR_PROJECT/ios
  • Rimuovere la cartella di build con rm -r build
  • Corri di react-native run-iosnuovo

In alternativa, puoi aprire Finder, navigare YOUR_PROJECT/iosed eliminare la buildcartella.

Quindi corri di react-native run-iosnuovo.

Fonte: Andrew Bancroft


5

Questo è un problema con v0.42.1 di reazione nativa. Prova a chiudere tutte le istanze di terminale e XCode ed esegui:

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

3
"Questo è un problema con la v0.42.1 di reazione nativa." - Esiste anche con la v.0.43.
dcp,


5

Corri nel Terminal react-native start:

cd your react native app directory/ react-native start 

Avvierà il packager, ora non chiudere questa finestra del terminale, in un'altra finestra del terminale eseguire il progetto. Questo è l'unico desiderio che ho trovato per farlo funzionare correttamente.


4

Ho trovato il modo più semplice / veloce per aggirare questo è quello di uscire dall'app all'interno del simulatore (2 x Cmd + Shift + H) e riavviare.


4

Ho avuto lo stesso problema. Ma il mio problema era che il mio Mac e iPhone non erano nella stessa rete wifi.

Quindi assicurati che siano tutti nella stessa rete e ricostruisci ancora una volta. In caso contrario, prova qui le soluzioni citate dagli altri membri.


3

controlla il tuo proxy di rete, meglio spegnerlo.

oppure dovresti trovare un altro modo per mantenere il server packager


Grazie, ho aperto la VPN globale per attraversare la Great Fire Wall!
BaiJiFeiLong,

Ho disabilitato la configurazione automatica del proxy su Mac. Ha funzionato dopo 2 giorni di sforzi: D ... Grazie.
Nirav Jain,

Stavo effettivamente eseguendo una VPN che non ricordavo nemmeno. spegnerlo ha funzionato!
Pedro Marques,

3

È successo anche a me, dopo aver riavviato il mio mac. C'è una finestra terminale launchPackager che si apre quando si esegue l'app sul simulatore. Ho chiuso quella finestra e ho terminato il processo (ho anche chiuso il simulatore), quindi ho eseguito di nuovo run-ios reattivo nativo e tutto funziona bene.


3

Nel mio caso il problema è stato risolto riavviando il adbserver:adb kill-server && adb start-server


3

Ho avuto questo problema accadere anche per me ... il problema era che il packer non era in esecuzione sembrava probabilmente perché la mia shell predefinita era zsh. i pneumatici nativi per aprire una nuova finestra del terminale e correre .../node_modules/react-native/packager/launchPackager.commandma questo non ha funzionato. Eseguirlo manualmente (e mantenerlo in esecuzione) risolto questo problema per me.


3

controlla la tua chiave 'localhost' su NSExceptionDomains dict in info.plist

se non esiste, provoca errori.


2

Supponendo che si stiano utilizzando nvme che siano installate più versioni del nodo, ecco la soluzione:

  1. Dire che si esegue npm install -g react-native-cliinnode v6.9.5 .
  2. Adesso fai node v6.9.5 l'impostazione predefinita eseguendonvm alias default 6.9.5
  3. Adesso corri react-native run-ios

Il problema è che hai installato più versioni del nodo tramite nvme per installare react-native-clihai cambiato o installato la versione più recente del nodo, che non è ancora stata contrassegnata come nodo predefinito nvm. Quando si esegue react-native run-iosquesto si apre un'altra nuova finestra del terminale in cui l'impostazione predefinita nvmnon è puntata alla versione del nodo in cui è stato installato react-native-cli. Basta seguire la configurazione sopra, spero che dovrebbe aiutare.


2

assicurati di avere .jsbundle nel tuo progetto

Inserisci

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

nel tuo codice nativo reagisci prova a riaprire il progetto


1

Sto lavorando con RN 0.49.5. Ho provato molti metodi, ma nessuno funziona. Alla fine ho capito. È semplice e facile

L'idea principale è di cambiare localhostin 127.0.0.1, ma non è dove l'RN ti dice. È in RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) host .

Modifiche al codice: oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1"; va bene per il simulatore. Se si tratta di un dispositivo, basta cambiare l'indirizzo IP in quello della macchina.


Potresti approfondire la tua soluzione?
Ashish Singh Rawat,

1

un'altra cosa che funziona per me è aprire il progetto in xcode, quindi pulirlo e costruirlo. di solito esegue nuovamente il server di packaging e risolve il problema.


1

Eseguire il comando seguente:

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

si aprirà launchpackager.command e l'applicazione verrà installata sul simulatore iOS


0

Assicurarsi che launchPackage.commandsiano in esecuzione in un terminale e riprovare. Costruirà il pacchetto. È un po 'come webpack-dev-server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.