J'essaie d'exécuter mon application React Native dans XCode et j'obtiens toujours cette erreur. Je n'arrive pas à comprendre comment résoudre le problème. Aucune suggestion?
Capture d'écran de l'erreur dans XCode:
J'essaie d'exécuter mon application React Native dans XCode et j'obtiens toujours cette erreur. Je n'arrive pas à comprendre comment résoudre le problème. Aucune suggestion?
Capture d'écran de l'erreur dans XCode:
Réponses:
Supprimez les modules de nœuds, puis exécutez npm install
(ou mieux encore yarn) et une fois que tout est téléchargé, exécutez react-native upgrade
ce qui devrait vous donner la possibilité de remplacer les anciens fichiers par ceux du modèle, ce faisant, vous reliez vos dépendances natives dans react-native qui devrait résoudre votre problème. N'oubliez bien sûr pas de nettoyer votre projet dans Xcode.
react-native upgrade
tous mes paramètres de construction ont été supprimés.
xcode Product-> Scheme-> Manage Schemes cliquez sur '+' à la cible pour sélectionner "React" et définir le React est partagé.
Pour tous ceux qui utilisent React Native 0.40.0 ou supérieur, les importations d'en-tête ont un changement majeur par rapport à RN 0.40.0 et entraînent de nombreuses erreurs de fichier .h non trouvées. react-native-git-upgrade
corrigé le problème pour moi pendant le débogage mais la construction échoue dans la version / l'archive.
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>
Maintenant nettoyez le projet et construisez
Aucune des autres suggestions ne corrigeait mon erreur, mais celle-ci l'a fait.
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
Exécutez la commande à pod install
partir du dossier ios.
Redémarrez XCode et l'erreur devrait disparaître.
J'ai rencontré ce problème après mon premier essai d'exécuter une version React dans XCode, et tout ce que j'avais à faire était de construire et d'exécuter pour faire disparaître l'erreur (après avoir choisi une équipe et un provisionnement approprié). Parfois, XCode montre des erreurs qui ne sont pas vraiment des erreurs jusqu'à ce qu'il compile et lie les choses la première fois.
La solution qui fonctionne pour moi est de partager le React
schéma.
Si vous n'avez pas de schéma React, créez-en un nouveau par Selecting scheme menu -> Manage Scheme -> + -> choose React
, puis marquez le schéma React comme partagé
De plus, si vous utilisez Xcode 10, accédez à File -> Project Settings
et sélectionnez Système de construction hérité
J'ai résolu ce problème en suivant les étapes:
React.xcodeproj
de Libraries
vers la racine du projet.SaleKit
) dansTARGETS
Build Phases
Target Dependencies
ajoutReact
Pour mon cas dans ReactNative "0.54.2", je l'ai résolu avec la solution suivante
Dans Xcode sélectionnez Product->Scheme->Manage Schemes
, décochez `` YourProject'-tvOS, définissez-le sur non partagé
Meilleure solution :
Ouvrez 'Build Settings' pour votre projet dans Xcode, recherchez 'Header Search Path'.
Double-cliquez à côté de "Chemin de recherche de l'en-tête", où les autres propriétés ont un "oui" ou un "non"
Maintenant, ajoutez ce qui suit au "Chemin de recherche d'en-tête" (sous Paramètres de construction):
$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base
N'oubliez pas Rendez les deux récursifs.
Exécutez npm install
dans votre répertoire de projet pour installer la react-native
résolution de cette erreur.
Dans le répertoire de base du projet que 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 trouvé que le gestionnaire de packages 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
Que moi kill 9 ...
le processus.
Après avoir fermé Xcode, exécutez:
npm install
Et j'ai recommencé Xcode, à partir de ce moment, tout fonctionne comme prévu !!
J'ai eu le même problème et je l'ai résolu en plaçant RNFIRMessaging.h au-dessus de React / RCTBundleURLProvider.h
Donc, je vais ressembler à:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
Essayez ce qui suit:
J'ai rencontré le même problème. Ensuite, j'ai supprimé le nœud .try pour utiliser ces étapes
puis faites construire et voyez
Pour moi remplaçant
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
par
#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>
dans le fichier AppDelegate.m travaillé.
Si vous n'avez pas exécuté, npm install
vous rencontrerez probablement ce problème.
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 entraîne la création du répertoire dans votre projet sous node_modules> react-native-fcm
ÉTAPE 2:
Vous devez ajouter '$(SRCROOT)/../node_modules/react-native-fcm/ios'
des chemins de recherche d'en-tête dans les paramètres de construction.
Ces 2 étapes ont fonctionné pour moi pour supprimer l'erreur.
Pour plus de détails, vous pouvez passer par ces liens:
Pour mon cas, je ne pouvais pas supprimer node_modules et réinstaller et je ne pouvais pas non plus le faire react-native-git-updgrade
ou react-native upgrade
parce que je voulais rester sur RN-0.59 car .60 pose des problèmes pour mes dépendances.
Quoi qu'il en soit, ma situation était qu'il me manquait le fichier 'React / RCTBundleURLProvider.h'. J'avais déjà React disponible dans mes schémas. Ce n'était pas dans mon répertoire de bibliothèques. J'ai vérifié les paramètres de construction de ma cible .
À l'intérieur des dépendances de cible, j'avais également React.
J'ai supprimé la dépendance cible 'React', puis rajouté. dossiers de construction nettoyés, projet reconstruit. ça a marché.
J'utilise React Native 0.61. J'ai créé une extension de partage et j'obtenais cette erreur. J'avais besoin de remplacer:
#import "RCTBundleURLProvider.h"
avec
#import "React/RCTBundleURLProvider.h"
vous devez installer react native, en exécution du terminal
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
puis
brew install node
brew install watchman
npm install -g react-native-cli
source:
https://facebook.github.io/react-native/docs/getting-started.html
Assurez-vous que le chemin d'accès à votre projet ne contient aucun espace. Le simple fait de renommer les dossiers et de supprimer des espaces résout le problème pour moi.