Quando eseguo un progetto di reazione nativo, ricevo un errore no bundle URL present
, ma non so quali errori faccio, ero molto confuso.
rm -rf ios/build/
watchman watch-del-all
Quando eseguo un progetto di reazione nativo, ricevo un errore no bundle URL present
, ma non so quali errori faccio, ero molto confuso.
rm -rf ios/build/
watchman watch-del-all
Risposte:
Risolvi l'errore No bundle URL present
:
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
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
Mi sono appena imbattuto in questo problema (per la prima volta con React Native). Il problema è scomparso quando - mentre react-native run-ios
era in esecuzione una simulazione iOS ( ) - ho corso npm install
e poi di react-native run-ios
nuovo. 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 PropertyFinder
riga 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=8082
ereact-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
Ho avuto lo stesso problema quando ho raggruppato la mia app. Verifica che il tuo main.jsbundle
sia mirato al tuo Progetto principale
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
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>
localhost
al 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.
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 .
Motivo:
Questo perché l'app non è in grado di rilevare il server (che serve l'interfaccia utente - tramite codice javascript).
Soluzione:
npm run start
oyarn start
primaLoading dependency graph, done.
)react-native run-ios/android
Spiegazione:
React Native viene fornito in 2 parti:
Comandi di costruzione:
react-native run-ios/android
consiste 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 start
o 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.react-native run-ios/android
subito 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).Il tempo impiegato per questa risposta era relativo alla mia macchina => potrebbe essere diverso su altri.
Prova a eseguire questo codice:
$ sudo xcodebuild -license
Questo potrebbe risolvere il problema. Questo funziona per me.
Ho avuto lo stesso errore ed è stato in grado di eseguire l'app solo tramite Xcode. react-native run-ios
non ha funzionato. Per risolvere il problema è necessario rimuovere la build
cartella in YOUR_PROJECT/ios/build/
. Successivamente, dovresti essere in grado di eseguire react-native run-ios
nuovamente l'app . Spero che questo ti aiuti.
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
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 ..)
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.
"plugins": ["transform-decorators-legacy"]
al tuo file .babelrc. Oppure provalo con l'HOC di connessione.
The node type SpreadProperty has been renamed to SpreadElement
e la sua @babel
libreria di riferimento all'interno di node_modules
, non ho trovato nulla che abbia risolto questo problema.
Soluzione ->
npm start
quindi apri il nuovo Terminale e vai al percorso del tuo progetto, quindi premi
react-native run-ios
per me funziona
Cosa mi ha risolto:
cd
in YOUR_PROJECT/ios
rm -r build
react-native run-ios
nuovoIn alternativa, puoi aprire Finder, navigare YOUR_PROJECT/ios
ed eliminare la build
cartella.
Quindi corri di react-native run-ios
nuovo.
Fonte: Andrew Bancroft
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
prima chiudi il simulatore, quindi eseguili sul terminale
npm install
react-native run-ios
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.
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.
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.
controlla il tuo proxy di rete, meglio spegnerlo.
oppure dovresti trovare un altro modo per mantenere il server packager
È 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.
Nel mio caso il problema è stato risolto riavviando il adb
server:adb kill-server && adb start-server
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.command
ma questo non ha funzionato. Eseguirlo manualmente (e mantenerlo in esecuzione) risolto questo problema per me.
controlla la tua chiave 'localhost' su NSExceptionDomains dict in info.plist
se non esiste, provoca errori.
Supponendo che si stiano utilizzando nvm
e che siano installate più versioni del nodo, ecco la soluzione:
npm install -g react-native-cli
innode v6.9.5
. node v6.9.5
l'impostazione predefinita eseguendonvm alias default 6.9.5
react-native run-ios
Il problema è che hai installato più versioni del nodo tramite nvm
e per installare react-native-cli
hai cambiato o installato la versione più recente del nodo, che non è ancora stata contrassegnata come nodo predefinito nvm
. Quando si esegue react-native run-ios
questo si apre un'altra nuova finestra del terminale in cui l'impostazione predefinita nvm
non è puntata alla versione del nodo in cui è stato installato react-native-cli
. Basta seguire la configurazione sopra, spero che dovrebbe aiutare.
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
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 localhost
in 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.
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.
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