web-dev-qa-db-fra.com

Fichier "RCTBundleURLProvider.h" introuvable - AppDelegate.m

J'essaie d'exécuter mon application native React en Xcode et je continue à avoir cette erreur. Je n'arrive pas à comprendre comment résoudre le problème. Aucune suggestion?

Capture d'écran d'une erreur dans le XCode:

 screenshot

103
FilosoferKing

Supprimez les modules de nœud, puis exécutez npm install (ou mieux encore) et une fois le téléchargement terminé, exécutez react-native upgrade qui devrait vous donner la possibilité de remplacer les anciens fichiers par ceux du modèle. Ainsi, vous liez de nouveau vos dépendances natives dans natif qui devrait résoudre votre problème. Bien sûr, n'oubliez pas de nettoyer votre projet dans Xcode.

55
Armands Malejevs

xcode Product-> Scheme-> Manage Schemes Cliquez sur '+' sur la cible pour sélectionner "React" et définir le partage de React.

224
mark

Pour tous ceux qui utilisent React Native 0.40.0 ou une version ultérieure, les importations d'en-tête présentent un changement majeur par rapport à RN 0.40.0 et génèrent de nombreuses erreurs. react-native-git-upgrade a corrigé le problème pour moi pendant le débogage mais la compilation échoue dans l'édition/l'archivage.

J'utilise RN 0.42.3 avec des cocoapodes et Xcode 8.2.1

Pour résoudre complètement ce problème, accédez à Xcode> Produit> Schéma> Modifier le schéma>

  1. Décocher Paralléliser Construire enter image description here
  2. Cliquez sur le bouton + dans Cibles et ajoutez React enter image description here
  3. Faites glisser le React ajouté en haut de la liste dans Targets .  enter image description here

Maintenant, nettoyez le projet et construisez

17
Hariks

Aucune des autres suggestions ne corrigeait mon erreur mais celle-ci l'a fait.

1 - Créer un fichier podfile

Créez un fichier nommé ios/Podfile dans votre application react-native avec le contenu suivant:

# You Podfile should look similar to this file. React Native currently does not support use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

target '<YOUR_APP_NAME>' do
  # Fixes required for pod specs to work with rn 0.42
  react_native_path = "../node_modules/react-native"
  pod "Yoga", :path => "#{react_native_path}/ReactCommon/yoga"
  pod "React", :path => react_native_path, :subspecs => [
    'Core',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket'
  ]

  pod 'GoogleMaps'  # <~~ remove this line if you do not want to support GoogleMaps on iOS

# when not using frameworks  we can do this instead of including the source files in our project (1/4):
#  pod 'react-native-maps', path: '../../'
#  pod 'react-native-google-maps', path: '../../'  # <~~ if you need GoogleMaps support on iOS
end

2 - Installer Podfile

Exécutez la commande pod install depuis le dossier ios.

3 - Réinitialiser le XCode

Redémarrez XCode et l'erreur devrait avoir disparu.

16
Erich

J'ai rencontré ce problème après ma première tentative d'exécution d'une version React dans XCode, et tout ce que j'avais à faire était de créer et d'exécuter l'erreur afin de supprimer l'erreur (après avoir sélectionné une équipe et mis en place le provisionnement approprié). Parfois, XCode affiche des erreurs qui ne le sont pas vraiment jusqu'à ce qu'il compile et relie les choses la première fois.

8
Dave Cole

J'ai résolu ce problème en procédant comme suit:

  1. Dans xcode, choisissez la racine du projet.
  2. Faites glisser React.xcodeproj de Libraries à la racine du projet.
  3. Cliquez sur le nom du projet (dans mon cas, il s'appelle SaleKit) dans TARGETS
  4. Choisissez Build Phases
  5. Dans la liste déroulante de Target Dependencies ajouter React
  6. Reconstruire ou réexécuter

 enter image description here

6
Robust

Pour mon cas dans React Native "0.54.2", je l'ai résolu avec la solution suivante

Dans Xcode, sélectionnez Product->Scheme->Manage Schemes, décochez l'option "Votre projet" pour qu'elle ne soit pas partagée

5
Echo7

La solution qui fonctionne pour moi est de partager le schéma React.

Si vous n'avez pas de schéma de réaction, créez-en un nouveau avec Selecting scheme menu -> Manage Scheme -> + -> choose React, puis marquez le schéma de réaction comme partagé.

 enter image description here

 enter image description here  enter image description here

De plus, si vous utilisez Xcode 10, accédez à File -> Project Settings et sélectionnez Système de construction hérité.

 enter image description here

4
onmyway133

Exécutez npm install dans votre répertoire de projet pour installer react-native en résolvant cette erreur.

3
Paul Brittain

Vous exécutez peut-être le fichier .xcodeproj après l'installation du pod. 

Fermez-le et ouvrez le fichier .xcworkspace. Cela a fonctionné pour moi.

2
Saranjith

Essayez ce qui suit:

  1. Nettoyer (cmd+shift+K).
  2. Build core React - sélectionnez React en tant que schéma dans Xcode et construisez-le (cmd+B).
  3. Générez la bibliothèque qui échoue (par exemple, RCTText).
  4. Construisez votre application.
2
jyson

J'ai eu le même problème et je l'ai corrigé en plaçant RNFIRMessaging.h au-dessus de React/RCTBundleURLProvider.h

Donc, je vais ressembler à ceci:

#import "AppDelegate.h"
#import "RNFIRMessaging.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
2
Jefferson Filho

cliquez sur Produit-> Schéma-> Gérer les schémas -> +. puis ajoutez réagissez comme partagé. Assurez-vous également que le nom de votre projet y figure également. 

1
Eran Or

J'ai fait face au même problème .alors j'ai supprimé le noeud .try pour utiliser ces étapes 

  1. Supprimez le dossier node_modules - rm -rf node_modules && npm install
  2. Réinitialiser le cache de l'emballeur - rm -fr $ TMPDIR/react- * ou Node_modules/react-native/packager/packager.sh --reset-cache
  3. Effacer montres de gardien - watchman watch-del-all

puis faire construire et voir 

1
Sport

Meilleure solution :

Ouvrez "Paramètres de construction" pour votre projet dans Xcode, recherchez "Chemin de recherche en-tête".

Double-cliquez sur "Chemin de recherche d'en-tête", où les autres propriétés ont un "oui" ou un "non"

Maintenant, ajoutez ce qui suit au "Chemin de recherche en-tête" (sous Paramètres de construction):

$ (SRCROOT) /../ node_modules/react-native/React $ (SRCROOT) /../ node_modules/react-native/React/Base N'oubliez pas de les rendre récursifs.

1
Mega Area

J'ai trouvé que la solution à ce problème après la mise à niveau de React consistait à modifier la déclaration de #import "RCTBundleURLProvider.h" en #import <React/RCTBundleURLProvider.h>.

1
ays0110

J’ai essayé toutes les suggestions et aucune d’entre elles n’a fonctionné au. J’ai supprimé le référentiel, puis le clone à nouveau et que cela fonctionne pour moi. Je suggère donc de valider vos modifications et de cloner à nouveau le référentiel qui a fonctionné pour moi.

0
ragar90

Dans le répertoire de base du projet, je lance:

node_modules/react-native/packager/packager.sh --reset-cache

Ce qui a abouti à:

Scanning 554 folders for symlinks in /Users/..../work/..../react_tutorial/AwesomeProject/node_modules (15ms)
 ┌────────────────────────────────────────────────────────────────────────────┐
 │  Running packager on port 8081.                                            │
 │                                                                            │
 │  Keep this packager running while developing on any JS projects. Feel      │
 │  free to close this tab and run your own packager instance if you          │
 │  prefer.                                                                   │
 │                                                                            │
 │  https://github.com/facebook/react-native                                  │
 │                                                                            │
 └────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
   /Users/..../work/...../react_tutorial/AwesomeProject

Loading dependency graph... ERROR  Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:

lsof -i :8081

J'ai constaté que le gestionnaire de paquets ne peut pas s'exécuter lorsqu'un autre processus de conditionnement est en cours d'exécution.

J'ai trouvé le processus en cours d'exécution avec:

lsof -i :8081

Alors je kill 9 ... le processus.

Après que j'ai fermé Xcode, lancez:

npm install

Et a commencé Xcode à nouveau, à partir de ce moment tout fonctionne comme prévu !!

0
Oded Regev

Si vous n'avez pas exécuté npm install, vous rencontrerez probablement ce problème.

0
Harkirat Saluja

J'ai parcouru toutes les réponses mentionnées ci-dessus.

Voici la solution qui a fonctionné pour moi:

ÉTAPE 1:

Courir: 

npm install react-native-fcm --save 

Cela a pour résultat de rendre le répertoire de votre projet sous node_modules> react-native-fcm

 Add react-native-fcm to your project

ÉTAPE 2:

Vous devez ajouter '$(SRCROOT)/../node_modules/react-native-fcm/ios' à chemins de recherche en-tête dans les paramètres de construction.

 Add to header search paths

Ces 2 étapes ont fonctionné pour moi pour éliminer l'erreur.

Pour plus de détails, vous pouvez passer par ces liens:

https://github.com/evollu/react-native-fcm/issues/63

https://github.com/evollu/react-native-fcm/issues/21

0
Harjot Singh