L'application fonctionnait bien sur React Native 0.35.0. Après la mise à jour à la 0.40.0 via react-native-git-upgrade
, un certain nombre de problèmes lexicaux/préprocesseurs apparaissent lorsque je tente de créer/exécuter l'application dans XCode.
React/RCTBridgeModule.h' file not found
En cliquant sur le problème, je vois ceci mis en évidence:
#import <React/RCTBridgeModule.h>
Cela ne semble pas être un problème de chemin de recherche.
J'ai essayé de supprimer node_modules et de relancer npm install
, mais cela ne résout rien.
Comme indiqué par le th0th, il y a un changement radical dans RN 0.40 pour iOS. En bref, les déclarations d'en-tête RN sont mises à jour pour pointer vers le chemin d'inclusion $(BUILT_PRODUCTS_DIR)/include/React
.
Pour résoudre le problème, vous devez procéder comme suit:
Remarque: vous pouvez toujours rencontrer des problèmes d’en-tête similaires avec d’autres bibliothèques (par exemple, react-native-fbsdk) faisant référence à ces fichiers .h natifs.
Dans réagit natif 0,40
vous devez remplacer #import "RCTBridgeModule.h"
par #import <React/RCTBridgeModule.h>
puis nettoyer et construire à nouveau.
Il y a un changement décisif à 0.40, vous pouvez voir les détails ici .
Citant directement à partir des notes de publication:
Cela signifie que toutes les bibliothèques natives iOS ont besoin d'une version de base majeure pour RN 0.40. Nous essayons de minimiser les changements de cette ampleur et nous nous excusons pour tout inconvénient causé.
Ainsi, toutes les bibliothèques iOS natives nécessiteront une mise à jour avant de devenir compatibles avec la version 0.40 de react-native.
J'ai eu le même problème. Je l'ai résolu en supprimant la cible Test de mon application dans le schéma de construction.
Ces étapes ont aidé à résoudre mon problème. J'ai essayé les étapes "Décochez paralléliser la construction". Cela n'a pas fonctionné pour moi.
Si vous utilisez pod, vous pouvez peut-être essayer cette solution:
Accéder aux chemins de recherche d'en-tête: Pods -> TARGETS -> (YOUR TARGET, like my target is RNGL) -> Build Settings -> All -> Search Paths -> Header Search Paths
ajouter un chemin: "${PODS_ROOT}/Headers/Public/React"
non-récursif
Si votre application n'est pas trop grosse, juste
1) rename original app
2) create the same app again react-native init <orig_app_name>
3) copy over all necessary files from your original app to the newly created one
4) adjust the package.json
5) npm install
6) react-native run-<ios|Android>
J'ai passé des heures à trouver où lier les nouvelles bibliothèques, c'était pour le moins une option et un raccourci précieux.
j'espère que ça aide quelqu'un
Voici comment je l'ai fait fonctionner:
#import '....h'
qui provoquaient une erreur sur le #import <React/.....h>
correspondant.Mise à jour de
à
le nettoyer et construire.
Bien que je ne l’aie pas testé, je suppose que si je n’apportais aucun changement et que je le nettoyais et que je le construisais aurait fait l'affaire.
Changer le chemin de:
#import <React/RCTBridgeModule.h>
à:
#import <React/Base/RCTBridgeModule.h>
a travaillé pour moi.