Wenn ich ein reaktionsnatives Projekt ausführe, wird eine Fehlermeldung angezeigt no bundle URL present
, aber ich weiß nicht, welche Fehler ich mache. Ich war sehr verwirrt.
ios
reactjs
react-native
Yingch Xue
quelle
quelle
rm -rf ios/build/
watchman watch-del-all
Antworten:
Lösen Sie den Fehler
No bundle URL present
durch: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
Jetzt können Sie den React Native iOS-Build mit einer einfachen Alias-Verknüpfung ausführen (ohne sich Gedanken über einige der häufig auftretenden roten Fehlerbildschirme des Todes machen zu müssen):
rni
quelle
Ich bin auch gerade auf dieses Problem gestoßen (zum ersten Mal mit React Native). Das Problem verschwand, als
react-native run-ios
ich - während eine ios-Simulation ( ) lief - liefnpm install
und dannreact-native run-ios
wieder. Im Terminalfenster wurde angezeigt, dass es sich um eine Bündelung handelte, und dann zeigte der Simulator den Begrüßungsbildschirm an.Überprüfen Sie diesen Link auf Kurzinformationen, nachdem Sie
react-native init PropertyFinder
versucht haben, die Leitung zu verwendennpm start
(dieser funktioniert bei mir).================================================== ======================
UPDATE für 16.9
Mein Port 8081 wurde von McAfee blockiert. Die direkte Verwendung eines anderen Ports funktionierte nicht
react-native start --port=8082
undreact-native run-ios --port=8082
Versuchte fast alle hier angegebenen Lösungen. aber alles hat nicht funktioniert.
Lösung:
In Xcode nach 8081 gesucht und alle durch 8082 ersetzt. Führen Sie dann dieselben Befehle aus, um die App zu erstellen und auszuführen. App funktioniert reibungslos
quelle
Hatte das gleiche Problem, als ich meine App gebündelt habe. Überprüfen Sie, ob Ihr
main.jsbundle
Projekt auf Ihr Hauptprojekt ausgerichtet istquelle
Wie in der Fehlermeldung angegeben:
Das Ausführen des folgenden Befehls hat funktioniert:
quelle
Dieses Problem tritt auf, wenn Sie keine unsicheren Verbindungen über localhost zulassen oder wenn Sie versucht haben, unsichere Verbindungen über http zu akzeptieren.
Um dies zu beheben, fügen Sie Folgendes hinzu
info.plist
:quelle
localhost
in Info.plist von auf meine lokale Netzwerkadresse geändert und sie wurde daher nicht aufgelöst. Ich habe einen Block für 'localhost' als Ausnahmedomäne hinzugefügt und es hat funktioniert.Schließen Sie Ihren Simulator und das Terminal. Öffnen Sie ein neues und gehen Sie zu Ihrem Projekt. Aktualisieren Sie dann Ihr React-Native wie folgt:
Problem in: Unendliche Rekursion in RCTFatal, wenn das Bundle nicht ausgeführt werden kann .
quelle
Grund:
Dies liegt daran, dass die App den Server nicht herausfinden kann (der die Benutzeroberfläche bedient - per Javascript-Code).
Lösung:
npm run start
oderyarn start
zuerstLoading dependency graph, done.
).react-native run-ios/android
Erläuterung:
React Native besteht aus 2 Teilen:
Build-Befehle:
react-native run-ios/android
besteht darin, einen nativen Teil zu erstellen, dann auf Geräten bereitzustellen und die App auf Geräten (Simulator / Emulator / reales Gerät) zu starten. Dies dauerte normalerweise 3 bis 4 Minuten.npm run start
oderyarn start
besteht darin, den Javascript-Teil zu erstellen und den Entwicklungsserver zu starten, um die erstellte Benutzeroberfläche für die App bereitzustellen. Dies dauerte normalerweise 30 Sekunden.=> Normalerweise wurde der Javascript-Teil zuerst fertiggestellt, dann kam der native Teil später. (basierend auf der Zeit, die sie verwendet haben).
=> Dies gilt nur für den ersten Build (Fresh Build).
=> für den Wiederaufbau:
Der native Teil brauchte nur 10 bis 15 Sekunden, um die Änderungen zu überprüfen, und da keine Änderung für den nativen Teil vorgenommen wurde =>, bevor der Javascript-Teil erstellt und bereitgestellt wurde. (Ich bin nicht sicher, ob der Javascript-Teil neu erstellt wurde oder nicht, aber es hat lange gedauert als der native Teil)
Deshalb hatten wir dieses Problem, die App lief und erforderte etwas, das noch nicht existierte.
Bonus:
react-native run-ios/android
startet den Entwicklungsserver automatisch für Sie.react-native run-ios/android
gleich danachreact-native init <app_name>
gelaufen bist . (weil die Autostart-Funktion und die Zeit für den Neubau wie oben angegeben benötigt wurden).Die für diese Antwort verwendete Zeit war relativ zu meiner Maschine => kann bei anderen unterschiedlich sein.
quelle
Versuchen Sie, diesen Code auszuführen:
$ sudo xcodebuild -license
Dies kann das Problem beheben. Das funktioniert bei mir.
quelle
Ich hatte den gleichen Fehler und konnte die App nur über Xcode ausführen.
react-native run-ios
funktioniert nicht. Um das Problem zu beheben, müssen Sie denbuild
Ordner unter entfernenYOUR_PROJECT/ios/build/
. Danach sollten Sie Ihre Appreact-native run-ios
erneut ausführen können . Hoffe das hilft.quelle
In den meisten Fällen tritt dieses Problem auf, wenn die DNS-Suche / IP-Suche localhost nicht findet.
Lösung:
Versuchen Sie, die IP-Adresse localhost zu Ihrer Host-Datei usw. hinzuzufügen.
Sie können die folgenden Zeilen zu Ihrer etc-Hostdatei (/ etc / hosts) hinzufügen.
127.0.0.1 localhost
255.255.255.255 Broadcasthost
:: 1 l. ocalhost
Um zu bestätigen, dass dies das Problem ist , können Sie die Bundle-URL auf Safari aufrufen (wenn Sie es in Chrome versuchen, wird dies behoben, aber Safari kann es nicht lösen). http: // localhost: 8081 / index.ios.bundle? platform = ios & dev = true & minify = false
quelle
Stellen Sie sicher, dass Ihre ATS-Einstellungen in der .plist-Datei korrekt sind.
Sie finden die Datei unter /ios/{{project_name}}/Info.plist
localhost muss wie folgt als Ausnahmeanforderungsziel definiert werden:
* (Vergessen Sie nicht, dies bei der Release-Version zu entfernen.)
quelle
Für mich war das Problem, dass das JS-Bundle nicht erstellt werden konnte. Der Fehler beim Erstellen aus Xcode wird nicht angegeben, sodass Sie dies nicht wissen können. Führen Sie den folgenden Befehl aus, um den Fehler zu finden.
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
Für mich war der Fehler etwas mit fehlender PureRenderMixin-Komponente. Die Lösung finden Sie hier: https://github.com/facebook/react-native/issues/13078 . Grundsätzlich müssen Sie [email protected] manuell installieren. Dies kann durch Ausführen dieses Befehls erfolgen.
npm i --save [email protected]
Dieses Problem tritt jetzt für alle auf, da neuere Versionen von Reaktionsalphas veröffentlicht werden (insbesondere Alpha.5) und reaktionsnative Builds beschädigt werden.
quelle
"plugins": ["transform-decorators-legacy"]
Sie vielleicht, zu Ihrer .babelrc-Datei hinzuzufügen. Oder versuchen Sie es mit dem Connect HOC.The node type SpreadProperty has been renamed to SpreadElement
und seine referenzierende@babel
Bibliothek innerhalb vonnode_modules
, ich habe nichts gefunden, das dies angesprochen hat.Lösung ->
npm start
dann öffne neues Terminal und gehe zu deinem Projektpfad und drücke dann, dassreact-native run-ios
es für mich funktioniertquelle
Was hat es für mich gelöst:
cd
inYOUR_PROJECT/ios
rm -r build
react-native run-ios
erneut ausAlternativ können Sie den Finder öffnen, zu dem navigieren
YOUR_PROJECT/ios
und ihn löschenbuild
Ordner .Dann renne
react-native run-ios
wieder .Quelle: Andrew Bancroft
quelle
Dies ist ein Problem mit react-native v0.42.1. Versuchen Sie, alle Terminal- und XCode-Instanzen zu schließen, und führen Sie Folgendes aus:
quelle
Schließen Sie zuerst den Simulator und führen Sie diese dann auf dem Terminal aus
quelle
Einfach im Terminal ausführen
react-native start
:Der Packager wird gestartet. Schließen Sie dieses Terminalfenster jetzt nicht. Führen Sie in einem anderen Terminalfenster Ihr Projekt aus. Dies ist der einzige Wunsch, den ich gefunden habe, damit es richtig funktioniert.
quelle
Ich habe den einfachsten / schnellsten Weg gefunden, dies zu umgehen, indem ich die App im Simulator (2 x
Cmd + Shift + H
) beende und neu starte.quelle
Ich hatte das gleiche Problem. Mein Problem war jedoch, dass sich mein Mac und mein iPhone nicht im selben WLAN-Netzwerk befanden.
Stellen Sie also sicher, dass sich alle im selben Netzwerk befinden, und erstellen Sie sie erneut. Ist dies nicht der Fall, probieren Sie die von anderen Mitgliedern hier genannten Lösungen aus.
quelle
Überprüfen Sie Ihren Netzwerk-Proxy und fahren Sie ihn besser herunter.
oder Sie sollten einen anderen Weg finden, um den Packager-Server zu warten
quelle
Es ist mir auch passiert, nachdem ich meinen Mac neu gestartet habe. Es öffnet sich ein launchPackager-Terminalfenster, wenn Sie Ihre App auf dem Simulator ausführen. Ich habe dieses Fenster geschlossen und den Prozess beendet (ich habe auch den Simulator geschlossen), dann wieder reaktionsnative Run-Ios ausgeführt und alles funktioniert einwandfrei.
quelle
In meinem Fall wurde das Problem durch einen Neustart des
adb
Servers behoben :adb kill-server && adb start-server
quelle
Ich hatte dieses Problem auch für mich ... das Problem war, dass der Packer nicht lief, es schien wahrscheinlich, weil meine Standard-Shell zsh war. Reagieren Sie native Reifen, um ein neues Terminalfenster zu öffnen und zu laufen,
.../node_modules/react-native/packager/launchPackager.command
aber dies lief nicht. Das manuell auszuführen (und es am Laufen zu halten) hat dies für mich behoben.quelle
Überprüfen Sie Ihren 'localhost'-Schlüssel bei NSExceptionDomains dict in info.plist
Wenn es nicht existiert, verursacht es einen Fehler.
quelle
Angenommen, Sie verwenden
nvm
und mehrere Versionen des Knotens installiert, ist hier die Lösung:npm install -g react-native-cli
innode v6.9.5
.node v6.9.5
standardmäßig durch Ausführen machennvm alias default 6.9.5
react-native run-ios
Das Problem ist, dass Sie mehrere Versionen des Knotens über
nvm
installiertreact-native-cli
haben und zur Installation die neueste Version des Knotens gewechselt oder installiert haben, die noch nicht als Standardknoten zum Zeigen markiert istnvm
. Wenn Sie dies ausführen,react-native run-ios
wird ein weiteres neues Terminalfenster geöffnet, in dem standardmäßignvm
nicht auf die Knotenversion verwiesen wird, auf der Sie installiert habenreact-native-cli
. Folgen Sie einfach dem obigen Setup, ich hoffe das sollte helfen.quelle
Stellen Sie sicher, dass Sie .jsbundle in Ihrem Projekt haben
Hinzufügen
Versuchen Sie in Ihrem reaktiven nativen Code, das Projekt erneut zu öffnen
quelle
Ich arbeite mit
RN 0.49.5
. Ich habe viele Methoden ausprobiert, aber niemand funktioniert. Schließlich habe ich das herausgefunden. Es ist einfach und leicht.Hauptidee ist , die sich ändern
localhost
zu127.0.0.1
, aber es ist nicht , wo die RN sagt. Es befindet sich in RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) Host .Codeänderungen:
oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1";
Dies ist für den Simulator in Ordnung. Wenn es sich um ein Gerät handelt, ändern Sie einfach die IP-Adresse in die Ihres Computers.quelle
Eine andere Sache, die für mich funktioniert, ist, das Projekt in xcode zu öffnen und es dann zu bereinigen und zu erstellen. Normalerweise wird der Verpackungsserver erneut ausgeführt und das Problem behoben.
quelle
Führen Sie den folgenden Befehl aus:
Es öffnet die Datei launchpackager.command und die Anwendung wird auf dem iOS-Simulator installiert
quelle
Stellen Sie sicher
launchPackage.command
, dass in einem Terminal ausgeführt wird, und versuchen Sie es erneut. Es wird das Bundle erstellen. Es ist ein bisschen wie ein Webpack-Dev-Server.quelle