55 votes

Réagissez Native / Xcode Upgrade et maintenant RCTConvert.h introuvable

App fonctionnait bien sur React Native 0.35.0. Après la mise à jour à 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 d'exécuter à nouveau npm install , mais cela ne résout rien.

121voto

max23_ Points 4389

Comme l'a souligné th0th, il y a une modification de rupture dans RN 0,40 pour iOS. En bref, RN-tête déclarations sont mis à jour pour pointer vers le chemin de l' $(BUILT_PRODUCTS_DIR)/include/React.

Pour résoudre le problème, vous devez effectuer les opérations suivantes:

  1. Dans Xcode, allez dans le projet de schéma (Product -> Système -> Gestion Système -> double cliquez sur votre projet).
  2. Cliquez sur 'créer' option dans le volet de gauche.
  3. Décochez la case "Paralléliser Construire des" sous Options de compilation.
  4. Puis dans les Objectifs de la section, cliquez sur '+' sur le bouton de recherche pour 'Réagir'. Sélectionnez-la et cliquez sur 'Ajouter'.
  5. 'Réagir' devrait maintenant apparaître sous les Objectifs de la section. Cliquez et faites glisser vers le haut de sorte qu'il sera le premier élément de la liste (avant projet).
  6. Nettoyez le projet et de construire.

Remarque: Vous devrez toujours en-tête similaire problème avec d'autres bibliothèques (par exemple, réagissent-native-fbsdk) qui fait référence à ceux qui réagissent natif .h fichiers.

6voto

Ashok R Points 7671

3voto

Gokhan Sari Points 1473

Il y a une modification de rupture sur 0.40, vous pouvez voir les détails ici.

De citer directement les notes de version:

Cela signifie que tous les iOS bibliothèques natives besoin d'une version majeure à la bosse pour la RN 0.40. Nous essayons de minimiser les changements de cette ampleur, et nous excusons pour la gêne occasionnée.

Donc, toutes natives iOS bibliothèques aurez besoin d'une mise à jour avant d'arriver compatible avec réagissent-version native de 0,40.

2voto

Xiely_Viomi Points 21

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

2voto

radosch Points 306

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X