web-dev-qa-db-fra.com

Que signifie "Pas d'URL de paquet présent" dans react-native?

Lorsque j'exécute un projet natif de réaction, l'erreur no bundle URL present s'affiche, mais je ne sais pas quelles erreurs je commets, j'étais très confus.

 enter image description here

130
Yingch Xue

Je viens également de rencontrer ce problème (première utilisation de 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 à nouveau exécuté npm install, puis react-native run-ios. Dans la fenêtre du terminal, cela montrait qu'il était en train de se regrouper, puis le simulateur montrait l'écran de bienvenue.

Vérifiez ce lien pour les briefs après la ligne react-native init PropertyFinder essayez d'utiliser npm start (celui-ci fonctionne pour moi)

62
Skip Suva

Fermez votre simulateur et le terminal. Ouvrez-en un nouveau et accédez à votre projet, puis mettez à niveau votre réact-native comme ceci:

react-native upgrade

Numéro dans: https://github.com/facebook/react-native/issues/5090

26
Mateo Marconi

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.

... j'ai lancé la commande suivante:

Sudo xcodebuild -license

Ça fonctionne maintenant.

21
cwRichardKim

Ce problème survient lorsque vous n'autorisez pas les connexions non sécurisées via localhost ou si vous avez peut-être tenté d'accepter des 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>
</key>
16
Witalo Benicio

J'ai eu le même problème lorsque j'ai regroupé mon application . Vérifiez que votre main.jsbundle est ciblé sur votre projet principal

 

16
parse

Raison:

En effet, l'application ne peut pas trouver le serveur (qui sert l'interface utilisateur - avec du code javascript).

Solution:

  • Assurez-vous que tout ce qui est lié à la réaction native est fermé (pas nécessaire, juste pour que ma solution soit propre, après mon explication, vous pouvez savoir si cela est nécessaire ou non)
  • lancez npm run start ou yarn start en premier
  • attendez que cette commande soit exécutée (vous verrez généralement Loading dependency graph, done.)
  • exécuter react-native run-ios/Android

Explication:

  • React Native est livré avec 2 parties:

    • Partie autochtone
    • Partie Javascript
  • Construire des commandes:

    • react-native run-ios/Android consiste à créer une partie native, puis à déployer sur des périphériques et à démarrer l'application sur des périphériques (simulateur/émulateur/périphérique réel). Cela prenait généralement 3 ~ 4 minutes pour finir.

    • npm run start ou yarn start est de construire la partie javascript et de démarrer le serveur de dev pour servir l'interface utilisateur construite à l'application. Cela prenait généralement 30 secondes pour terminer.

=> Normalement, la partie javascript est terminée puis la partie native vient plus tard. (basé sur le temps qu'ils ont utilisé).

=> ceci n’est vrai que pour la première construction (construction récente).

=> 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 soit construite et servie. (Je ne suis pas sûr que la partie javascript ait été reconstruite ou non, mais cela a pris plus de temps que la partie native)

  • C’est pourquoi nous avons eu ce problème, l’application a été lancée et a nécessité une fonctionnalité qui n’existait pas encore.

Prime:

  • react-native run-ios/Android lancera automatiquement le serveur de développement pour vous.
  • C'est pourquoi, lorsque vous avez exécuté react-native run-ios/Android juste après react-native init <app_name>, tout s'est bien passé. (parce que la fonction de démarrage automatique et le temps a été pris pour la nouvelle construction comme état ci-dessus).
  • D'autres solutions de "suppression" ont fonctionné parce qu'elles ont forcé la reconstruction.

Le temps utilisé sur cette réponse était relatif à ma machine => peut être différent sur d’autres.

13
Khoa

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 fonctionné. Pour résoudre le problème, vous devez supprimer le dossier build à YOUR_PROJECT/ios/build/. Après cela, vous devriez pouvoir exécuter votre application via react-native run-ios à nouveau. J'espère que cela t'aides.

11
sonlexqt

Ce qui l'a résolu pour moi:

  • Ouvrir une fenêtre de terminal
  • cd dans YOUR_PROJECT/ios
  • Supprimez le dossier de construction avec rm -r build
  • Exécutez react-native run-ios à nouveau

Vous pouvez également ouvrir le Finder, accéder à YOUR_PROJECT/ios et supprimer le dossier build.

Puis lancez react-native run-ios again.

Source: Andrew Bancroft

6
l3aronsansgland

Solution -> npm start puis ouvrez un nouveau terminal et accédez au chemin de votre projet, puis appuyez sur react-native run-ios cela fonctionne pour moi

5
rahul.sapkal23

Assurez-vous que vos paramètres ATS sont corrects dans le fichier .plist.

Vous pouvez trouver le fichier à l’adresse /ios/{{project_nameNameBuch/Info.plist

localhost doit être défini comme cible de demande d'exception de la manière suivante:

<key>NSAppTransportSecurity</key>
    <dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

* (n'oubliez pas de supprimer ceci sur la version release ..)

5
Serdar Değirmenci

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, vous ne pouvez donc pas le savoir. Pour rechercher 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 due à un composant manquant de PureRenderMixin. La solution peut être trouvée ici: https://github.com/facebook/react-native/issues/13078 . En gros, vous devez installer manuellement [email protected]. Cela peut être fait en exécutant cette commande.

npm i --save [email protected]

Ce problème se pose maintenant pour tout le monde car de nouvelles versions de react alphas sont publiées (en particulier alpha.5) et elles sont en train de modifier les versions natives de Rea.

5
urbancvek

Essayez d'exécuter ce code ---

Sudo xcodebuild -license

Cela peut résoudre le problème. Cela fonctionne pour moi.

4
Kusal Kithmal

C'est un problème avec react-native v0.42.1. Essayez de fermer toutes les instances de terminaux et XCode et exécutez:

launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
4
Shobhit Sharma

J'ai trouvé que le moyen le plus simple et le plus rapide de contourner ce problème est de quitter l'application dans le simulateur (2 x Cmd + Shift + H) et de le relancer.

4
Toby Flemming

Dans la plupart des cas, ce problème se produit lorsque la recherche DNS/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 bien le problème Vous pouvez cliquer sur l'URL de l'offre groupée pour le 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

3
Vivek

fermez d'abord le simulateur, puis exécutez-les sur le terminal

npm install

react-native run-ios
3

Dans mon cas, le problème a été résolu en redémarrant le serveur adb: adb kill-server && adb start-server

2
Grzegorz Pawlik

vérifiez votre clé 'localhost' à l'adresse NSExceptionDomains dans info.plist 

s'il n'existe pas, cela provoque une erreur.

2
ogelacinyc

vérifiez votre proxy réseau, mieux vaut le fermer.

ou vous devriez trouver un autre moyen de maintenir le serveur de conditionnement

2
user1684758

J'ai eu ce problème aussi pour moi ... le problème était que le compresseur ne fonctionnait pas, il semblait que mon shell par défaut était zsh. réag-native tire pour ouvrir une nouvelle fenêtre de terminal et exécuter .../node_modules/react-native/packager/launchPackager.command mais cela ne s’exécute pas. L'exécuter manuellement (et le maintenir) l'a corrigé pour moi.

2
Chris

Cela m'est aussi arrivé après avoir redémarré 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 mis fin au processus (j'ai également fermé le simulateur), puis exécuté à nouveau réact-native run-ios et tout fonctionne correctement.

2
gianni

J'ai eu le même problème. Mais mon problème était que mon Mac et mon iPhone n'étaient pas dans le même réseau wifi. 

Veillez donc à ce qu'ils soient tous dans le même réseau et reconstruisez-les à nouveau. Si ce n'est pas le cas, essayez les solutions mentionnées par d'autres membres ici.

2
Abraham Jagadeesh

Il suffit de lancer dans le terminal react-native start:

cd your react native app directory/ react-native start 

Il va démarrer le conditionneur, maintenant ne fermez pas cette fenêtre de terminal, dans une autre fenêtre de terminal, exécutez votre projet. C’est le seul désir que j’ai trouvé pour le faire fonctionner correctement.

1
Prakash salawria

En supposant que vous utilisez nvm et plusieurs versions de noeud installées, voici la solution:

  1. Dites que vous exécutez npm install -g react-native-cli dans node v6.9.5
  2. Maintenant, définissez node v6.9.5 par défaut en exécutant nvm alias default 6.9.5
  3. Maintenant, lancez react-native run-ios

Le problème est que vous avez plusieurs versions de noeud installées via nvm et pour installer react-native-cli vous avez déjà basculé ou installé la dernière version de noeud, qui n'est pas encore marquée comme noeud par défaut à pointer dans nvm. Lorsque vous exécutez react-native run-ios, cela ouvre une autre nouvelle fenêtre de terminal dans laquelle la variable par défaut nvm n'est pas dirigée vers la version du noeud sur laquelle vous avez installé react-native-cli. Il suffit de suivre la configuration ci-dessus, j'espère que cela devrait aider. 

1
Syed

Assurez-vous que launchPackage.command est en cours d’exécution dans un terminal et essayez à nouveau de l’exécuter. Il va construire le paquet. C'est un peu comme webpack-dev-server.

0
Codler

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

0
Saif Siddiqui

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 de conditionnement et résout le problème.

0
Eliran Goshen

J'étais connecté au réseau par câble et wifi sur mon macbook, le wifi est désactivé et il suffit de cliquer sur Run et ça a fonctionné!

0
WiRa

Nous avons contourné ce problème en supprimant l'option SKIP_BUNDLING dans le script de construction que la documentation RN proposait d'ajouter pour accélérer la génération de débogage. La vraie solution (pour notre cause) est incluse dans la RN 0.57:

https://github.com/facebook/react-native/issues/20553

0
mikeh

Celui-ci fonctionne pour moi. J'ai supprimé ces lignes de mon fichier plist sous iOS à des fins de production. Par conséquent, le simulateur n'a pas pu récupérer le fichier bundle. https://medium.com/@joshuakuhar/no-bundle-url-present-69333bb5da42

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        </dict>
    </dict>
</dict>
0
Tarik Chakur

Je travaille avec RN 0.49.5. J'ai essayé beaucoup de méthodes, mais personne ne fonctionne. Enfin, j’ai réussi à résoudre ce problème . C’est simple et facile. 

L'idée principale est de changer la localhost en 127.0.0.1, mais ce n'est pas là que l'IA vous dit. C'est dans RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) Host .

Changements de code: oc - NSString *Host = ipGuess ?: @"localhost"; + NSString *Host = ipGuess ?: @"127.0.0.1"; .__ C'est correct pour le simulateur. S'il s'agit d'un appareil, il suffit de modifier l'adresse IP de celle de votre ordinateur.

0
Bruce Lee
  1. vérifier vos hôtes que 127.0.0.1 localhost n'est pas supprimer 
  2. vérifier que l'agent réseau n'est pas configuré 
  3. puis npm install & react-native upgrade pour réinitialiser votre projet
0
Jane

Pour mon cas d'utilisation, j'ai dû supprimer le répertoire node_modules et exécuter npm install.

$ rm -rf node_modules   (make sure you're in the ios project directory)
$ npm install

Si vous obtenez l'erreur "dyld: la bibliothèque n'est pas chargée: /usr/local/opt/icu4c/lib/libicui18n.58.dylib", procédez comme suit:

$ brew uninstall --force node --ignore-dependencies node
$ brew uninstall icu4c --ignore-dependencies icu4c
$ brew install icu4c
$ brew unlink icu4c && brew link icu4c --force
$ brew install node

$ npm install
0
Hau Le

export FORCE_BUNDLING=true a travaillé pour moi. Il y avait un avertissement dans la console qu'il n'était pas groupé.

0
Techmaddy

Ok, ça peut paraître bizarre, mais aucune de ces réponses n’a fonctionné pour moi. Je suis maintenant à 0,60 réactif natif et le problème se posait sur iOS et Android. la seule solution qui fonctionnait pour moi exécutait react-native run-ios ou react-native run-Android puis, lorsque l'erreur apparaissait, exécutez npm install (laissez le bundler et le simulateur ouverts), puis exécutez react-native run-ios ou react-native run-Android

0
Alcides Bezerra

J'ai essayé toutes les solutions ci-dessous, mais rien ne fonctionne:

  • Sudo xcodebuild -license ou
  • Supprimez le dossier de construction avec rm -r build et exécutez react-native run-ios ou
  • npm start et exécuter react-native run-ios
  • Ajouter NSAppTransportSecurity à `

J'ai résolu par faire ceci:

  • Ouvrir le fichier hôte Sudo vi /private/etc/hosts (si vous utilisez VSCode, utilisez ce Sudo code /private/etc/hosts)
  • Ajouter trois lignes si ce n'est pas exister
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
  • Exécutez react-native run-ios à nouveau.
0
Le Xuan Tien

En effet, vous avez probablement fermé la fenêtre Metro Bundler ou celle-ci est peut-être bloquée. ouvrez simplement un autre terminal/cmd dans le répertoire du projet et exécutez npm start. En exécutant npm start React, _ Native lancera à nouveau la fenêtre MetroBundler. Une fois que l’emballeur a terminé le processus BUNDLE, il suffit de recharger l’application et vous serez prêt à partir.

0
Kiran Maniya

C'est parce que votre client ne peut pas atteindre votre serveur de conditionnement.

Si vous êtes un codeur chinois tel que je suis, je pense que vous pourriez utiliser un VPN pour passer par le GFW. Lorsque votre outil VPN est en «mode global», toutes vos demandes voyagent à travers le monde et ne peuvent pas obtenir localhost.

Essayez le "Mode proxy automatique".

Si vous ne venez pas de Chine ou si votre paramètre VPN est déjà "Mode proxy automatique", je vous suggère de fermer votre serveur de conditionnement et de réessayer.

0
Jared Chen

J'ai fait face au même problème et je l'ai résolu en apportant des modifications dans le fichier AppDelegate.m. j'ai changé

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

à

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];

Et ça a marché pour moi :)

0
Waleed Naveed

Ce problème peut survenir lorsque plusieurs versions du noeud sont gérées par nvm et que la version par défaut n’est pas destinée à être exécutée par react-native. (assurez-vous qu'il s'agit du nœud 8.3 ou plus récent)

réactif natif run-ios

ouvre un nouveau terminal et exécute la version du noeud trouvée dans le $ PATH.

S'il trouve une ancienne version de noeud non prise en charge par react native, il peut générer cette erreur.

Assurez-vous que la variable $ PATH pointe déjà vers la version souhaitée du nœud (assurez-vous qu'il s'agit du nœud 8.3 ou plus récent) lorsqu'un nouveau terminal est ouvert.

Cela a résolu le problème pour moi. Bonne chance.

0
Arun Kandregula

Cela se produit également si vous avez installé Visual Studio Code React Native Tools mais que vous continuez à utiliser react native dans le terminal: cela fonctionnera la première fois mais ensuite, il s'arrêtera l'écran rouge pas de paquet.

le lancement de react native from vscode fonctionne parfaitement à la place ...

0
Edoardo

Ce problème m'est arrivé car le bundler Metro a démarré et a reçu le focus alors que je tapais sur mon clavier dans une autre fenêtre. Ma saisie accidentelle dans la fenêtre du terminal récemment ouverte a provoqué le blocage de l’unité de traitement Metro. Réexécuter react-native run-ios et attendre patiemment l'a corrigé.

0
schmijos

Ouvrez un cd de fenêtre de terminal dans YOUR_PROJECT/ios. Supprimez le dossier de construction avec rm -r build

Après cela, ouvrez votre projet dans Xcode et exécutez-le une fois. il sera lancé au démarrage du serveur et créera le fichier main.jsbundle.

Maintenant, si vous exécutez à nouveau run-ios réact-native à partir du terminal, cela fonctionnera comme prévu.

J'espère que ça va aider!.

0
vikram

Désactiver le proxy global (ombres)

0
ynceonrudi

Voici comment je l'ai fait:

  • Ouvrir une fenêtre de terminal
  • cd dans YOUR_PROJECT/ios
  • Supprimez le dossier build avec rm -r build
  • Exécutez à nouveau réactif natif run-ios
0
SoftwareTheory

essayez d'ajouter ceci:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsLocalNetworking</key>
    <true/>
</dict>

0
G. Adnane

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 de réaction, essayez de rouvrir le projet

0
Saloni Parikh