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:
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.
xcode Product-> Scheme-> Manage Schemes Cliquez sur '+' sur la cible pour sélectionner "React" et définir le partage de React.
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>
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
depuis le dossier ios.
Redémarrez XCode et l'erreur devrait avoir disparu.
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.
J'ai résolu ce problème en procédant comme suit:
React.xcodeproj
de Libraries
à la racine du projet.SaleKit
) dans TARGETS
Build Phases
Target Dependencies
ajouter React
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
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é.
De plus, si vous utilisez Xcode 10, accédez à File -> Project Settings
et sélectionnez Système de construction hérité.
Exécutez npm install
dans votre répertoire de projet pour installer react-native
en résolvant cette erreur.
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.
Essayez ce qui suit:
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>
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.
J'ai fait face au même problème .alors j'ai supprimé le noeud .try pour utiliser ces étapes
puis faire construire et voir
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.
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>
.
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.
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 !!
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 a pour résultat de rendre le répertoire de votre projet sous node_modules> react-native-fcm
ÉTAPE 2:
Vous devez ajouter '$(SRCROOT)/../node_modules/react-native-fcm/ios'
à chemins de recherche en-tête dans les paramètres de construction.
Ces 2 étapes ont fonctionné pour moi pour éliminer l'erreur.
Pour plus de détails, vous pouvez passer par ces liens: