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.
rm -rf ios/build/
watchman watch-del-all
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.
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
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 potem react-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.
"react": "16.9.0",
"react-dom": "^16.12.0",
"react-native": "0.61.5",
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
react-native start --port=8082
react-native run-ios --port=8082
Miałem ten sam problem, kiedy pakowałem swoją aplikację. Sprawdź, czy Twój main.jsbundle
cel jest skierowany do głównego Projektu
Zgodnie z instrukcjami w komunikacie o błędzie:
Zgoda na licencję Xcode / iOS wymaga uprawnień administratora, uruchom „sudo xcodebuild -license”, a następnie ponów polecenie.
Uruchomienie następującego polecenia działało:
sudo xcodebuild -license
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
:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
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:
react-native upgrade
Problem w: nieskończona rekurencja w RCTFatal, gdy pakiet nie wykonuje się .
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
lub yarn 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
lub yarn 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.
Spróbuj uruchomić ten kod:
$ sudo xcodebuild -license
To może rozwiązać problem. To działa dla mnie.
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 z YOUR_PROJECT/ios/build/
. Po tym powinieneś być w stanie ponownie uruchomić aplikację react-native run-ios
. Mam nadzieję że to pomoże.
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
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:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
* (nie zapomnij usunąć tego w wersji wydania).
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 react@16.0.0-alpha.3
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.
"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 środku node_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śnij
react-native run-ios
go, działa dla mnie
Co to dla mnie rozwiązało:
cd
w YOUR_PROJECT/ios
rm -r build
react-native run-ios
ponownieAlternatywnie możesz otworzyć Findera, przejść do folderu YOUR_PROJECT/ios
i usunąć go build
.
Następnie uruchom react-native run-ios
ponownie.
Źródło: Andrew Bancroft
Jest to problem związany z rodzimą reakcją v0.42.1. Spróbuj zamknąć wszystkie instancje terminala i XCode i uruchom:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
najpierw zamknij symulator, a następnie uruchom je na terminalu
npm install
react-native run-ios
Wystarczy uruchomić w terminalu react-native start
:
cd your react native app directory/ 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.
Znalazłem najłatwiejszy / najszybszy sposób na ominięcie tego: zamknięcie aplikacji w symulatorze (2 x Cmd + Shift + H
) i ponowne uruchomienie.
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.
sprawdź swoje sieciowe proxy, lepiej zamknij je.
lub powinieneś znaleźć inny sposób na utrzymanie serwera pakującego
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.
W moim przypadku problem został rozwiązany przez ponowne uruchomienie adb
serwera:adb kill-server && adb start-server
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.
sprawdź swój klucz „localhost” na stronie NSExceptionDomains w info.plist
jeśli nie istnieje, powoduje błąd.
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 zainstalowania react-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 wskazania nvm
. Po uruchomieniu react-native run-ios
otwiera się nowe okno terminala, w którym domyślnie nvm
nie jest wskazana wersja węzła, w której został zainstalowany react-native-cli
. Po prostu wykonaj powyższą konfigurację, mam nadzieję, że to powinno pomóc.
upewnij się, że masz .jsbundle w swoim projekcie
Dodaj
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
w swoim reakcyjnym natywnym kodzie spróbuj ponownie otworzyć projekt
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.
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.
Wykonaj poniższe polecenie:
killall -9 node
rm -rf ios/build
react-native run-ios
otworzy plik launchpackager.command, a aplikacja zostanie zainstalowana na symulatorze ios