Lorsque je lance un projet natif réactif, je reçois une erreur no bundle URL present
, mais je ne sais pas quelles erreurs je fais, j'étais très confus.
rm -rf ios/build/
watchman watch-del-all
Lorsque je lance un projet natif réactif, je reçois une erreur no bundle URL present
, mais je ne sais pas quelles erreurs je fais, j'étais très confus.
rm -rf ios/build/
watchman watch-del-all
Réponses:
Résolvez l'erreur No bundle URL present
en:
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
Vous pouvez maintenant exécuter la version React Native iOS (sans vous soucier de l'apparition des écrans d'erreur rouge courants de la mort) avec un simple raccourci d'alias:
rni
J'ai également rencontré ce problème (première fois avec React Native). Le problème a disparu lorsque - alors qu'une simulation ios ( react-native run-ios
) était en cours d'exécution - j'ai couru npm install
puisreact-native run-ios
nouveau. Dans la fenêtre du terminal, il a montré qu'il groupait, puis le simulateur a montré l'écran de bienvenue.
Consultez ce lien pour les mémoires après que la react-native init PropertyFinder
ligne ait essayé d'utilisernpm start
(celle-ci fonctionne pour moi)
=================================================== ======================
MISE À JOUR pour 16.9
Mon port 8081 a été bloqué par McAfee. L'utilisation directe d'un autre port ne fonctionnait pasreact-native start --port=8082
etreact-native run-ios --port=8082
J'ai essayé presque toutes les solutions données ici. mais rien n'a fonctionné.
"react": "16.9.0",
"react-dom": "^16.12.0",
"react-native": "0.61.5",
Solution:
Recherche 8081 dans Xcode et les a tous remplacés par 8082. Ensuite, exécutez les mêmes commandes pour construire et exécuter l'application. L'application fonctionne bien
react-native start --port=8082
react-native run-ios --port=8082
J'ai eu le même problème lorsque j'ai groupé mon application. Vérifiez que votre main.jsbundle
cible est votre projet principal
Comme indiqué dans le message d'erreur:
Accepter la licence Xcode / iOS nécessite des privilèges d'administrateur, veuillez exécuter "sudo xcodebuild -license", puis réessayez cette commande.
L'exécution de la commande suivante a fonctionné:
sudo xcodebuild -license
Ce problème se produit lorsque vous n'autorisez pas les connexions non sécurisées via localhost, ou peut-être que vous avez essayé d'accepter les connexions non sécurisées via http.
Pour résoudre ce problème, ajoutez ceci sur info.plist
:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
localhost
mon adresse de réseau local dans Info.plist et donc il ne résolvait pas. J'ai ajouté un bloc pour «localhost» comme domaine d'exception et cela a fonctionné.
Fermez votre simulateur et le terminal. Ouvrez-en un nouveau et accédez à votre projet, puis mettez à niveau votre réactif natif comme ceci:
react-native upgrade
Problème dans: Récursion infinie dans RCTFatal lorsque le bundle ne s'exécute pas .
Raison:
En effet, l'application ne peut pas trouver le serveur (qui sert l'interface utilisateur - par le code javascript).
Solution:
npm run start
ou d' yarn start
abordLoading dependency graph, done.
)react-native run-ios/android
Explication:
React Native est livré en 2 parties:
Créer des commandes:
react-native run-ios/android
consiste à créer une partie native puis à la déployer sur les appareils et à démarrer l'application sur les appareils (simulateur / émulateur / appareil réel). Cela prenait généralement 3 à 4 minutes pour terminer.
npm run start
ou yarn start
consiste à créer la partie javascript et à démarrer le serveur de développement pour servir l'interface utilisateur intégrée à l'application. Cela prenait généralement 30 secondes pour terminer.
=> Normalement, la partie javascript se termine d'abord, puis la partie native arrive plus tard. (en fonction du temps utilisé).
=> ceci n'est vrai que pour la première génération (nouvelle génération).
=> pour reconstruire:
La partie native a juste pris 10 à 15 secondes pour vérifier les modifications et parce qu'aucune modification pour la partie native => n'a été effectuée avant que la partie javascript ne soit construite et servie. (Je ne suis pas sûr que la partie javascript ait été reconstruite ou non mais cela a pris beaucoup de temps que la partie native)
C'est pourquoi nous avons eu ce problème, l'application a fonctionné et a exigé une chose qui n'existait pas encore.
Prime:
react-native run-ios/android
démarrera automatiquement le serveur de développement pour vous.react-native run-ios/android
juste aprèsreact-native init <app_name>
, tout s'est bien passé. (Parce que la fonction de démarrage automatique et le temps a été pris pour une nouvelle construction comme l'état ci-dessus).Le temps utilisé sur cette réponse était relatif à ma machine => peut différer sur les autres.
Essayez d'exécuter ce code:
$ sudo xcodebuild -license
Cela peut résoudre le problème. Cela fonctionne pour moi.
J'ai eu la même erreur et j'ai pu exécuter l'application uniquement via Xcode. react-native run-ios
n'a pas marché. Pour résoudre le problème, vous devez supprimer le build
dossier à YOUR_PROJECT/ios/build/
. Après cela, vous devriez pouvoir exécuter à react-native run-ios
nouveau votre application . J'espère que cela t'aides.
Dans la plupart des cas, ce problème se produit lorsque la recherche DNS / recherche IP ne parvient pas à trouver localhost.
Solution :
Essayez d'ajouter l'ip localhost à votre fichier hôte, etc.
vous pouvez ajouter les lignes ci-dessous à votre fichier hôte etc (/ etc / hosts)
127.0.0.1 localhost
255.255.255.255 broadcasthost
:: 1 l. ocalhost
Pour confirmer que c'est le problème, vous pouvez frapper l'url du bundle sur safari (si vous l'essayez en chrome cela résoudra mais safari ne pourra pas le résoudre). http: // localhost: 8081 / index.ios.bundle? platform = ios & dev = true & minify = false
Assurez-vous que vos paramètres ATS sont corrects dans le fichier .plist.
Vous pouvez trouver le fichier à /ios/{{project_name}}/Info.plist
localhost doit être défini comme cible de demande d'exception comme ceci:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
* (n'oubliez pas de le supprimer sur la version finale ..)
Pour moi, le problème était qu'il ne pouvait pas créer le bundle JS. Il n'indique pas l'erreur lors de la construction à partir de Xcode, il n'y a donc aucun moyen de le savoir. Pour trouver l'erreur, exécutez la commande suivante.
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
Pour moi, l'erreur était quelque chose avec le composant PureRenderMixin manquant. À laquelle la solution peut être trouvée ici: https://github.com/facebook/react-native/issues/13078 . Fondamentalement, vous devez installer manuellement react@16.0.0-alpha.3. Cela peut être fait en exécutant cette commande.
npm i --save react@16.0.0-alpha.3
Ce problème se produit maintenant pour tout le monde, car de nouvelles versions de Reaper Alphas sont publiées (en particulier alpha.5) et elles cassent les versions natives de React.
"plugins": ["transform-decorators-legacy"]
à votre fichier .babelrc. Ou essayez-le avec le connect HOC.
The node type SpreadProperty has been renamed to SpreadElement
et sa @babel
bibliothèque de référencement à l' intérieur de node_modules
, je n'ai rien trouvé qui a résolu ce problème.
Solution ->
npm start
puis ouvrez un nouveau terminal et accédez à votre chemin de projet, puis appuyez sur
react-native run-ios
cela fonctionne pour moi
Ce qui l'a résolu pour moi:
cd
dans YOUR_PROJECT/ios
rm -r build
react-native run-ios
nouveauVous pouvez également ouvrir le Finder, rechercher YOUR_PROJECT/ios
et supprimer le build
dossier.
Puis exécutez à react-native run-ios
nouveau.
Source: Andrew Bancroft
Il s'agit d'un problème avec react-native v0.42.1. Essayez de fermer toutes les instances de terminal et XCode et exécutez:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
fermez d'abord le simulateur, puis exécutez-les sur le terminal
npm install
react-native run-ios
Il suffit d'exécuter dans le terminal react-native start
:
cd your react native app directory/ react-native start
Il démarrera le packager, maintenant ne fermez pas cette fenêtre de terminal, dans une autre fenêtre de terminal exécutez votre projet. C'est le seul besoin que j'ai trouvé pour le faire fonctionner correctement.
J'ai trouvé que le moyen le plus simple / le plus rapide de contourner cela est de quitter l'application dans le simulateur (2 x Cmd + Shift + H
) et de relancer.
J'ai eu ce même problème. Mais mon problème était que mon Mac et mon iPhone n'étaient pas sur le même réseau wifi.
Assurez-vous donc qu'ils sont tous dans le même réseau et reconstruisez à nouveau. Si ce n'est pas le cas, essayez les solutions mentionnées par d'autres membres ici.
vérifiez votre proxy réseau, mieux vaut l'arrêter.
ou vous devriez trouver un autre moyen de maintenir le serveur de packager
Cela m'est également arrivé après le redémarrage de mon Mac. Une fenêtre de terminal launchPackager s'ouvre lorsque vous exécutez votre application sur le simulateur. J'ai fermé cette fenêtre et terminé le processus (j'ai également cloué le simulateur), puis j'ai exécuté à nouveau run-ios natif et tout fonctionne correctement.
Dans mon cas, le problème a été résolu en redémarrant le adb
serveur:adb kill-server && adb start-server
J'ai également eu ce problème pour moi ... le problème était que le packer ne fonctionnait pas, il semblait probablement parce que mon shell par défaut était zsh. des pneus natifs pour ouvrir une nouvelle fenêtre de terminal et fonctionner, .../node_modules/react-native/packager/launchPackager.command
mais cela n'a pas fonctionné. Le faire manuellement (et le faire fonctionner) a résolu ce problème pour moi.
vérifiez votre clé 'localhost' à NSExceptionDomains dict dans info.plist
s'il n'existe pas, il provoque une erreur.
En supposant que vous utilisez nvm
et plusieurs versions de nœud installées, voici la solution:
npm install -g react-native-cli
dans node v6.9.5
. node v6.9.5
par défaut en exécutantnvm alias default 6.9.5
react-native run-ios
Le problème est que vous avez plusieurs versions de nœud installées via nvm
et pour installer, react-native-cli
vous avez changé ou installé la dernière version de nœud, qui n'est pas encore marquée comme nœud par défaut à pointer nvm
. Lorsque vous exécutez, react-native run-ios
cela ouvre une autre nouvelle fenêtre de terminal dans laquelle la valeur par défaut nvm
n'est pas pointée vers la version du nœud où vous avez installé react-native-cli
. Suivez simplement la configuration ci-dessus, j'espère que cela devrait vous aider.
assurez-vous que vous avez .jsbundle dans votre projet
Ajouter
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
dans votre code natif réactif essayez de rouvrir le projet
Je travaille avec RN 0.49.5
. J'ai essayé beaucoup de méthodes, mais personne ne fonctionne. Enfin, je l'ai résolu. C'est simple et facile.
L'idée principale est de changer le localhost
en 127.0.0.1
, mais ce n'est pas là que le RN vous le dit. C'est dans RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) hôte .
Changements de code:
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
c'est ok pour le simulateur. S'il s'agit d'un appareil, changez simplement l'adresse IP en celle de votre machine.
une autre chose qui fonctionne pour moi est d'ouvrir le projet dans xcode, puis de le nettoyer et de le construire. généralement, il réexécute le serveur d'emballage et résout le problème.
Exécutez la commande ci-dessous:
killall -9 node
rm -rf ios/build
react-native run-ios
il ouvrira launchpackager.command et l'application s'installera sur le simulateur ios