Obtenir cette erreur lors de la création d'une application iOS native de réaction sur xcode.
J'ai commencé à obtenir cette erreur après l'installation de npm et la liaison rpm de la bibliothèque react-native-fs . Mais après avoir recherché une solution en ligne, j'ai remarqué que de nombreuses personnes obtiennent la même erreur lors de l'installation d'autres bibliothèques natives de réaction.
Une solution possible suggérée par beaucoup est d'ajouter ce qui suit sous "Paramètres de construction" -> "Chemins de recherche d'en-tête".
$(SRCROOT)/../node_modules/react-native/React
- (récursif)
Mais pas de chance avec cette solution, toujours la même erreur
react-native-webrtc
Réponses:
Dans mon cas, ce problème particulier s'est produit lorsque j'essayais d'archiver une application native react-native 0.40+ pour iOS (la solution a été trouvée ici: la version fiable
^0.39.2
échoue lors de la mise à niveau vers^0.40.0
).Ce qui s'est passé, c'est que Xcode essayait de construire les bibliothèques natives de réaction en parallèle et construisait des bibliothèques avec des dépendances de réaction implicites avant de construire la bibliothèque de réaction.
La solution dans mon cas était de:
Désactivez les builds parallèles:
Ajouter React en tant que dépendance de projet
la source
Assurez-vous de désactiver
Parallelise Build
et d'ajouter uneReact
cible au-dessus de votre ciblela source
CORRECTIF RAPIDE (pas le meilleur)
Modifiez les lignes d'en-tête natives de la réaction d'importation:
À:
Voici un exemple de modifications que j'ai dû apporter à la bibliothèque que j'essayais d'utiliser: Ferme # 46 - Fichier 'RCTBridgeModule.h' introuvable .
la source
#import <React/RCT...h>
? commettez ici#import "RCTBridgeModule.h"
vraiment mieux fonctionné pour moi aujourd'hui.Changement
à
la source
Pour les utilisateurs qui ont obtenu cette erreur après la mise à niveau de React Native vers 0.40+, vous devrez peut-être exécuter
react-native upgrade
sur la ligne de commande.la source
Si
Libraries/React.xcodeproj
sont rouges dans xcode, réinstallez node_modulesMon projet nouvellement créé à partir de react-native 0.46.3 était rouge: SI ont npm 5.3.0 et yarn 0.24.5 quand j'ai fait réagir-native init
la source
Les dernières versions des bibliothèques natives de réaction comme expliqué dans les articles précédents et ici ont des changements de compatibilité de rupture. Si vous ne prévoyez pas encore de mettre à niveau vers react-native 0.40+, vous pouvez forcer l'installation de la version précédente de la bibliothèque, par exemple avec react-native-fs:
la source
J'ai pu créer un débogage, mais je n'ai pas pu créer une archive.
J'ai résolu ce problème en faisant glisser
React.xcodeproj
trouvé dans / node_modules / react-native / React vers mon répertoire racine dans Xcode, puis j'ai ajouté React en tant que dépendance cible dans les phases de construction> dépendances cibles.la source
React.xcodeproj
dedans/node_modules/react-native/React
.react-native run-ios
, j'obtiens des erreurs de compilation qui ne se produisent pas dans Xcode. L'absence totale de documentation pertinente est frustrante.Après React Native 0.60, ce problème est souvent causé par une bibliothèque liée mélangée à la nouvelle fonctionnalité de «liaison automatique». Cela le corrige pour moi
Dissocier l'ancienne bibliothèque à l'aide de
Actualiser l'intégration des pods entièrement en utilisant
Maintenant, rechargez votre espace de travail et effectuez une nouvelle génération.
la source
Cette erreur est apparue pour moi après avoir exécuté la
pod install
commande pour les nouvelles dépendances. Parallèlement à ceux-ci, React avait également été installé. Par conséquent, Xcode était probablement confondu avec le chemin. J'ai supprimé ces lignes de PodFile et l'erreur a disparu. Veuillez noter que ceux supprimés d'ici étaient déjà liés dans Xcode.la source
Pour moi, cette erreur s'est produite lorsque j'ai ajouté un nouveau schéma / cible ( app.staging ) dans l'application et installé des pods à l'aide de l'installation de pod.
Ce problème se produit car les pods ne sont pas partagés pour toutes les cibles. Je dois donc ajouter une cible nouvellement ajoutée ( app.staging ) dans le Podfile .
Voici mon Podfile.
la source
Je reçois cette erreur dans tout nouveau module que je crée avec create-react-native-module . Aucune des solutions affichées n'a fonctionné pour moi.
Ce qui a fonctionné pour moi, c'est d'abord de m'assurer de l'exécuter
yarn
dans le dossier du module nouvellement créé afin de créernode_modules/
(cette étape est probablement évidente). Ensuite, dans XCode, sélectionnez Product -> Scheme -> React au lieu de la sélection par défaut de MyModuleName.la source
pod install
. create-react-native-module ne semble pas faire cela pour vous. M'a raccroché pendant un moment. Mais cela a fonctionné pour moi une fois que j'ai créé un podfile valide et exécuté l'installation.Accédez au dossier iOS de votre projet et installez le pod -
Si vous obtenez une erreur lors de l'installation de la commande de type pod-
Le résultat doit être - /Applications/Xcode.app/Contents/Developer
Si le chemin est incorrect, ouvrez votre projet iOS dans Xcode et accédez à: Xcode-> préférences-> outils de ligne de commande-> sélectionnez Xcode
Et installez à nouveau le pod, votre problème sera résolu.
la source
La suggestion d'anhdevit sur https://github.com/facebook/react-native/issues/24363#issuecomment-488547280 a fonctionné pour moi:
In your terminal, run: defaults delete com.apple.dt.Xcode
la source
Si vous souhaitez le créer à partir de votre éditeur, ouvrez également SMobile.xcscheme
Et changer
parallelizeBuildables = "NO"
la source
Pour moi, aucune des solutions ci-dessus n'a fonctionné et en dessous, c'est ce qui a fonctionné (j'avais déjà vérifié
Parallelize Build
et ajoutéReact
)la source
J'ai rencontré ce problème lors de la mise à niveau de la version 0.58.4 vers la nouvelle version 0.60.4 native de réaction. Rien de ce que j'ai trouvé sur Internet ne m'a aidé, mais j'ai réussi à le faire fonctionner:
Accédez aux paramètres de construction, recherchez «Chemins de recherche d'en-tête», sélectionnez l'entrée, appuyez sur le bouton SUPPRIMER.
J'ai eu ces valeurs remplacées et on dirait qu'elles sont revenues aux valeurs par défaut après la suppression. Cocoapods s'en plaignait également avec des messages dans le terminal après
pod install
:la source
J'ai rencontré ce problème après avoir rédigé un manuel
react-native link
sur une dépendance qui ne prenait pas en charge la liaison automatique sur RN 0.59+La solution était de sélectionner le fichier xcodeproj sous le dossier Bibliothèques dans Xcode, puis dans Paramètres de construction, modifier les chemins de recherche d'en-tête pour ajouter ces deux (récursifs):
la source
Si vous souhaitez garder Parallelise Build activé et éviter les problèmes d'en-tête manquants, fournissez une étape de pré-construction dans votre schéma pour placer les en-têtes de réaction dans la zone de données dérivées. Notez que les paramètres de construction proviennent du projet React dans ce cas. Oui, ce n'est pas une chose de beauté, mais cela fait le travail et réduit également beaucoup de temps sur les constructions. La sortie de l'étape de pré-construction se termine dans prebuild.log. Les en-têtes exacts que vous devrez copier dépendront des dépendances natives de réaction de votre projet, mais vous en obtiendrez le jist.
Récupérez le répertoire de données dérivé des variables d'environnement et copiez les en-têtes de réaction requis.
Le script est appelé lors d'un nettoyage de construction - ce qui n'est pas idéal. Dans mon cas, il y a une variable env qui change, me permettant de quitter le script plus tôt lors d'un nettoyage.
la source
Il vous suffit d'installer le pod, si le fichier pod existe, tapez simplement
sinon: donc d'abord,
puis,
dans le terminal. et vous êtes prêt à partir.
la source
Ce que vous pouvez faire pour bien faire les choses est:
1)
npm uninstall reat-native-fs
pour désinstaller la bibliothèque2)
npm unlink react-native-fs
pour dissocier la bibliothèqueMaintenant, la bibliothèque est supprimée avec succès et réinstallez maintenant la bibliothèque dans votre projet et cette fois, liez tout manuellement. Parfois, la liaison automatique provoque cette erreur.
la source