J'exécute la commande react-native run-ios
et mon application s'affiche pendant 3 secondes avant de l'afficher. Je cours sur le simulateur ios
ExceptionsManager.js: 76 Connexion à http: // localhost: 8081/debugger-proxy? role = client a expiré. Es-tu proxy de noeud en cours d'exécution? Si vous utilisez l'appareil, vérifiez si vous avoir la bonne adresse IP dans
RCTWebSocketExecutor.m
.
J'ai réussi à le faire fonctionner sans créer de nouveau projet en supprimant l'application du projet dans le simulateur sur l'écran d'accueil iOS. Cela fonctionne bien maintenant.
Je reçois souvent ce problème. Habituellement, lorsque je développe avec le débogueur distant et que je sauvegarde le type d'erreur de code -breaking.
Essayez de recharger ... Si cela ne résout pas le problème: Crlt + cmd + z. puis arrêtez le débogage distant, puis actualisez. Cela résoudra le problème, mais vous avez maintenant perdu votre débogueur. Alors, allez encore ... Crlt + cmd + z. cette fois, démarrez le débogage distant, puis actualisez à nouveau. Votre projet devrait être de retour et bon aller.
Cela fonctionne pour moi, mais c'est super ennuyant et prend beaucoup de temps. Je souhaite que quelqu'un a un meilleur moyen.
Pour le débogage à distance, vos deux appareils doivent être connectés au même réseau wifi (réseau).
Cela m’arrivait apparemment parce que j’avais redémarré le conditionneur natif de réaction alors que j’avais toujours un débogueur Chrome ouvert qui était attaché à l’instance précédente du conditionneur/émulateur précédent.
Tuer cet onglet Chrome du débogueur et essayer à nouveau run-ios
a semblé le résoudre, sans redémarrage ni autre sauvegarde.
J'ai eu cette erreur quand j'ai oublié de revenir à utiliser le fichier d'index au lieu de jsbundle après la construction de la version.
J'ai eu
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
Au lieu de
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
Passé à indexer le fichier et construit à nouveau et cela a fonctionné.
Dans mon cas, j'étais sur un réseau différent de celui du téléphone. Aucune carte SIM requise, je devais seulement m'assurer que j'étais sur le même réseau (nous avons des réseaux de travail et invités ici). Vous pouvez passer à la caisse pour quelques notes dans la documentation de RN (à mi-chemin se trouve une boîte rose avec le problème de proxy que nous avons tous rencontré):
http://facebook.github.io/react-native/docs/running-on-device.html
Le problème peut être avec votre routeur. Essayez de vous connecter au wifi via le hotspot iPhone.
Sur github J'ai trouvé une solution de contournement: comment configurer DNS pour résoudre cette erreur sur votre Mac et votre iPhone:
J'ai corrigé l'ajout d'un script dans "bundle réagit le code natif et les images" cible de phases de construction. J'ai simplement ajouté export DISABLE_XIP=NOTHANKS
Le problème était que le vrai périphérique essayait de se connecter à mon ip sous le domaine xip.io
Je pense que ce script est nécessaire lorsque nous allons ajouter des ressources d'images personnalisées dans le projet xCode, mais vous pouvez vérifier que l'URL de l'adresse IP est incorrecte dans l'onglet Navigateur de rapports .
Ma configuration
react: 16.3.1,
react-native-cli: 2.0.1
react-native: 0.55.4
xCode 9.4.1
Ici, les documents d’origine natifs sur xip.io (chapitre Dépannage) https://facebook.github.io/react-native/docs/running-on-device
Voici la possibilité de désactiver XIP . https://github.com/facebook/metro/commit/079dcaed990abb6754c03113362e4f537cd32a24
Voici le conseil que j’ai trouvé pour essayer cette solution https://github.com/facebook/react-native/issues/12786
J'ai la même erreur même si c'est la même chose pour le réseau.
Supprimez l'application de votre appareil et reconstruisez-la. Marchera.
Pour moi, cela s’est produit lorsque j’essayais de déboguer un vrai périphérique. Le problème était que mon ordinateur et mon véritable appareil ne disposaient pas du même réseau WiFi.
Cela m'arrivait aussi. Je l'ai en quelque sorte corrigé avec un redémarrage ... allez comprendre. J'imagine que Metro Bundler n'a pas pu se lancer car le port 8081 a déjà été utilisé par un autre processus. Après un redémarrage, j’ai exécuté à nouveau react-native run-ios
et cette fois, le simulateur s’est lancé correctement sans erreur.
Remarquez, cela m’arrivait dans un tout nouveau projet.
Je faisais face au même problème pour iOS.
Les astuces ci-dessous ont fonctionné pour moi:
OS_ACTIVITY_MODE
avec la valeurdisable
.J'espère que cela aidera quelqu'un.
#if DEBUG
jsCodeLocation = [NSURL URLWithString:@"http://192.168.11.21:8081/index.bundle?platform=ios&dev=true"];
#else
#warning "PRODUCTION DEVICE"
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#endif
Vous pouvez trouver votre adresse IP à partir de ce lien https://kb.wisc.edu/page.php?id=6526
J'ai beaucoup essayé et finalement résolu en ajoutant NSAllowsArbitraryLoads
à info.plist.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>