Kiedy uruchamiam projekt „reagujący”, pojawia się błąd no bundle URL present
, ale nie wiem, jakie błędy popełniam, byłem bardzo zdezorientowany.
ios
reactjs
react-native
Yingch Xue
źródło
źródło
rm -rf ios/build/
watchman watch-del-all
Odpowiedzi:
Rozwiąż błąd
No bundle URL present
przez: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
Teraz możesz uruchomić React Native kompilację na iOS (bez obawy o pojawienie się niektórych ekranów z czerwonymi błędami śmierci) za pomocą prostego skrótu aliasowego:
rni
źródło
Właśnie wpadłem na ten problem (pierwsze uruchomienie React Native). Problem zniknął, gdy - podczas uruchomionej symulacji ios (
react-native run-ios
) - uruchomiłem,npm install
a potemreact-native run-ios
znowu. W oknie terminala pokazało, że jest to wiązanie, a następnie symulator pokazał ekran powitalny.Sprawdź ten link, aby zobaczyć majtki po
react-native init PropertyFinder
linii spróbuj użyćnpm start
(ten działa dla mnie)================================================== ======================
AKTUALIZACJA dla 16.9
Mój port 8081 został zablokowany przez McAfee. Bezpośrednie używanie innego portu nie działało
react-native start --port=8082
ireact-native run-ios --port=8082
Próbowałem prawie wszystkich podanych tutaj rozwiązań. ale nic nie działało.
Rozwiązanie:
Szukano 8081 w Xcode i zastąpiłem je wszystkie 8082. Następnie uruchom te same polecenia, aby zbudować i uruchomić aplikację. Aplikacja działa płynnie
źródło
Miałem ten sam problem, kiedy pakowałem swoją aplikację. Sprawdź, czy Twój
main.jsbundle
cel jest skierowany do głównego Projektuźródło
Zgodnie z instrukcjami w komunikacie o błędzie:
Uruchomienie następującego polecenia działało:
źródło
Ten problem występuje, gdy nie zezwalasz na niezabezpieczone połączenia za pośrednictwem hosta lokalnego lub próbujesz zaakceptować niezabezpieczone połączenia przez http.
Aby to naprawić, dodaj to
info.plist
:źródło
localhost
na adres mojej sieci lokalnej w Info.plist i dlatego nie został rozwiązany. Dodałem blok dla „localhost” jako domenę wyjątku i zadziałał.Zamknij symulator i terminal. Otwórz nowy i przejdź do swojego projektu, a następnie zaktualizuj swój native-reakcyjny w następujący sposób:
Problem w: nieskończona rekurencja w RCTFatal, gdy pakiet nie wykonuje się .
źródło
Powód:
Wynika to z faktu, że aplikacja nie może znaleźć serwera (który obsługuje interfejs użytkownika - po kodzie javascript).
Rozwiązanie:
npm run start
lubyarn start
pierwszyLoading dependency graph, done.
)react-native run-ios/android
Wyjaśnienie:
React Native zawiera 2 części:
Kompiluj polecenia:
react-native run-ios/android
jest zbudowanie części natywnej, następnie wdrożenie na urządzenia i uruchomienie aplikacji na urządzeniach (symulator / emulator / urządzenie rzeczywiste). Zwykle trwało to 3 ~ 4 minuty.npm run start
lubyarn start
polega na zbudowaniu części javascript i uruchomieniu serwera deweloperów w celu obsługi wbudowanego interfejsu użytkownika w aplikacji. Zwykle zajęło to 30 sekund.=> Zwykle część javascript kończyła się jako pierwsza, a część natywna przyszła później. (na podstawie wykorzystanego czasu).
=> dotyczy to tylko pierwszej kompilacji (nowa kompilacja).
=> do przebudowy:
Część natywna zajęła 10 ~ 15 sekund sprawdzenie zmian i ponieważ żadna zmiana dla części natywnej => nie została wykonana przed zbudowaniem i udostępnieniem części javascript. (Nie jestem pewien, czy część javascript została przebudowana, czy nie, ale zajęło to dużo czasu niż część natywna)
Właśnie dlatego mieliśmy ten problem, aplikacja działała i wymagała czegoś, co jeszcze nie istniało.
Premia:
react-native run-ios/android
automatycznie uruchomi dla ciebie serwer deweloperów.react-native run-ios/android
zaraz potemreact-native init <app_name>
, wszystko poszło dobrze. (ponieważ funkcja automatycznego uruchamiania i czas potrzebny na świeżą kompilację jak powyżej).Czas wykorzystany na tę odpowiedź był względny w stosunku do mojej maszyny => może się różnić na innych.
źródło
Spróbuj uruchomić ten kod:
$ sudo xcodebuild -license
To może rozwiązać problem. To działa dla mnie.
źródło
Miałem ten sam błąd i mogłem uruchomić aplikację tylko przez Xcode.
react-native run-ios
nie działał. Aby rozwiązać problem, musisz usunąćbuild
folder zYOUR_PROJECT/ios/build/
. Po tym powinieneś być w stanie ponownie uruchomić aplikacjęreact-native run-ios
. Mam nadzieję że to pomoże.źródło
Większość przypadków ten problem występuje, gdy wyszukiwanie DNS / IP nie może znaleźć hosta lokalnego.
Rozwiązanie :
Spróbuj dodać adres IP hosta lokalnego do pliku hosta itp.
możesz dodać poniższe wiersze do pliku hosta etc (/ etc / hosts)
127.0.0.1 localhost
255.255.255.255 broadcasthost
:: 1 l. ocalhost
Aby potwierdzić, że jest to problem , możesz trafić na adres URL pakietu podczas safari (jeśli spróbujesz go w Chrome, rozwiąże to problem, ale safari nie będzie w stanie go rozwiązać). http: // localhost: 8081 / index.ios.bundle? platform = ios & dev = true & minify = false
źródło
Upewnij się, że ustawienia ATS są prawidłowe w pliku .plist.
Plik można znaleźć na stronie /ios/{{project_name}}/Info.plist
localhost musi być zdefiniowany jako cel żądania wyjątku w następujący sposób:
* (nie zapomnij usunąć tego w wersji wydania).
źródło
Dla mnie problemem było to, że nie mógł stworzyć pakietu JS. Nie podaje błędu podczas budowania z Xcode, więc nie możesz tego wiedzieć. Aby znaleźć błąd, uruchom następujące polecenie.
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
Dla mnie błąd polegał na braku komponentu PureRenderMixin. Do którego rozwiązanie można znaleźć tutaj: https://github.com/facebook/react-native/issues/13078 . Zasadniczo musisz ręcznie zainstalować reagować@16.0.0-alfa.3. Można to zrobić, uruchamiając to polecenie.
npm i --save [email protected]
Ten problem występuje obecnie dla wszystkich, ponieważ wydawane są nowsze wersje reagujących alf (szczególnie alpha.5) i łamią one kompilacje rodzime dla reagujących.
źródło
"plugins": ["transform-decorators-legacy"]
do pliku .babelrc. Lub spróbuj z Connect HOC.The node type SpreadProperty has been renamed to SpreadElement
i jego@babel
biblioteka odwołań w środkunode_modules
, nie znalazłem niczego, co by to rozwiązało.Rozwiązanie ->
npm start
następnie otwórz nowy Terminal i przejdź do ścieżki projektu, a następnie wciśnijreact-native run-ios
go, działa dla mnieźródło
Co to dla mnie rozwiązało:
cd
wYOUR_PROJECT/ios
rm -r build
react-native run-ios
ponownieAlternatywnie możesz otworzyć Findera, przejść do folderu
YOUR_PROJECT/ios
i usunąć gobuild
.Następnie uruchom
react-native run-ios
ponownie.Źródło: Andrew Bancroft
źródło
Jest to problem związany z rodzimą reakcją v0.42.1. Spróbuj zamknąć wszystkie instancje terminala i XCode i uruchom:
źródło
najpierw zamknij symulator, a następnie uruchom je na terminalu
źródło
Wystarczy uruchomić w terminalu
react-native start
:Uruchomi on program pakujący, teraz nie zamykaj tego okna terminala, w innym oknie terminala uruchom swój projekt. To jest jedyna potrzeba, aby znaleźć prawidłowe działanie.
źródło
Znalazłem najłatwiejszy / najszybszy sposób na ominięcie tego: zamknięcie aplikacji w symulatorze (2 x
Cmd + Shift + H
) i ponowne uruchomienie.źródło
Miałem ten sam problem. Ale moim problemem było to, że mój Mac i iPhone nie byli w tej samej sieci Wi-Fi.
Upewnij się, że wszystkie są w tej samej sieci, i przebuduj ponownie. Jeśli tak nie jest, wypróbuj rozwiązania wymienione przez innych członków tutaj.
źródło
sprawdź swoje sieciowe proxy, lepiej zamknij je.
lub powinieneś znaleźć inny sposób na utrzymanie serwera pakującego
źródło
Zdarzyło mi się to również po ponownym uruchomieniu komputera Mac. Po uruchomieniu aplikacji na symulatorze otwiera się okno terminalu Packager. Zamknąłem to okno i zakończyłem proces (zamknąłem również symulator), a następnie uruchom ponownie - uruchom-ios-native-run i wszystko działa dobrze.
źródło
W moim przypadku problem został rozwiązany przez ponowne uruchomienie
adb
serwera:adb kill-server && adb start-server
źródło
Ten problem zdarzył się również dla mnie ... Problem polegał na tym, że pakiet nie działał, wydawało się, że prawdopodobnie moja domyślna powłoka to Zsh. reagujące opony, aby otworzyć nowe okno terminala i uruchomić,
.../node_modules/react-native/packager/launchPackager.command
ale to nie zadziałało . Ręczne uruchomienie tego (i utrzymanie go) naprawiło to dla mnie.źródło
sprawdź swój klucz „localhost” na stronie NSExceptionDomains w info.plist
jeśli nie istnieje, powoduje błąd.
źródło
Zakładając, że używasz
nvm
i zainstalowanych jest wiele wersji węzła, oto rozwiązanie:npm install -g react-native-cli
wnode v6.9.5
.node v6.9.5
jako domyślny, uruchamiającnvm alias default 6.9.5
react-native run-ios
Problem polega na tym, że masz wiele wersji węzła zainstalowanych za pośrednictwem
nvm
i do zainstalowaniareact-native-cli
przełączyłeś lub zainstalowałeś najnowszą wersję węzła, który nie jest jeszcze oznaczony jako domyślny węzeł do wskazanianvm
. Po uruchomieniureact-native run-ios
otwiera się nowe okno terminala, w którym domyślnienvm
nie jest wskazana wersja węzła, w której został zainstalowanyreact-native-cli
. Po prostu wykonaj powyższą konfigurację, mam nadzieję, że to powinno pomóc.źródło
upewnij się, że masz .jsbundle w swoim projekcie
Dodaj
w swoim reakcyjnym natywnym kodzie spróbuj ponownie otworzyć projekt
źródło
Pracuję z
RN 0.49.5
. Próbowałem wielu metod, ale nikt nie działa. W końcu to wypracowałem. To proste i łatwe.Główną ideą jest, aby zmienić
localhost
się127.0.0.1
, ale nie jest to gdzie RN powie. Jest w RCTBundleURLProvider.m # - (BOOL) jest hostem PackageRunning: (NSString *) .Zmiany w kodzie:
oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1";
To jest poprawne dla symulatora. Jeśli jest to urządzenie, po prostu zmień adres IP na swój komputer.źródło
Kolejną rzeczą, która działa dla mnie, jest otwarcie projektu w xcode, a następnie wyczyszczenie go i zbudowanie. zwykle uruchamia ponownie serwer pakowania i rozwiązuje problem.
źródło
Wykonaj poniższe polecenie:
otworzy plik launchpackager.command, a aplikacja zostanie zainstalowana na symulatorze ios
źródło
Upewnij się, że
launchPackage.command
działają w terminalu i spróbuj uruchomić ponownie. Zbuduje pakiet. To trochę jak webpack-dev-server.źródło