2017-01-15 4 views
24

Получение этой ошибки при создании приложения iOS с поддержкой реакции на xcode.`React/RCTBridgeModule.h` файл не найден

enter image description here

начал получать эту ошибку после того, как НПМ установки и тахометр ссылки react-native-fs библиотеку. Но после поиска в Интернете решения, я заметил, что многие люди получают ту же ошибку при установке других реагирующих родных библиотек.

A Возможное решение, предложенное многими, это Добавление в «Настройки сборки» -> «Пути поиска заголовков».

$(SRCROOT)/../node_modules/react-native/React - (рекурсивный)

Но не повезло с этим решением, все еще получаю ту же ошибку,

+0

Я получаю эту ошибку с v0.41.2, она должна работать с , но это не так:/ – camou

+0

@camou см. мой ответ ниже; это может помочь – lawrence

ответ

21

В моем случае эта конкретная проблема возникла, когда я пытался архивировать 0.40+-реактивное приложение для iOS (решение было найдено здесь: https://github.com/facebook/react-native/issues/11721#issuecomment-270672904).

Что случилось, что Xcode пытался построить реагировать-родные библиотеки в параллельных и строит библиотеки с неявным реагируют зависимости перед тем на самом деле здание библиотеки среагировать.

Решение в моем случае было:

  1. Отключение параллельно сборки: меню

    • Xcode -> Продукция -> Схема -> Управление Шемес ...
    • Двойной щелчок по вашей заявке
    • Строить вкладку -> удалить галочку на Pallelize Build
  2. Добавить реагировать как проект зависимых пакеты

    • Xcode Project Navigator -> перетащить React.xcodeproj из библиотеки в корне дерева
    • Построить Фазы Tab -> Target Зависимости -> + -> добавить Реагировать
+1

Добавление реакции, поскольку явная зависимость работала отлично. Спасибо! –

+1

Я обнаружил, что это происходит только тогда, когда вы обновляетесь, чтобы реагировать на 0.40+ ниже. Проект, инициализированный с помощью 0,40+ RN, уже отключен с помощью параллельных построений. – Zanyinj

+0

Что означает «перетащить в корневое дерево»? И вкладка «Build Phases Tab» ... это фазы сборки React.xcodeproj? – GreenAsJade

0

Что вы можете сделать, чтобы получить это право является:

1) npm uninstall reat-native-fs удалить библиотеку

2) npm unlink react-native-fs отвязать библиотека

Теперь библиотека я s успешно удалили и теперь устанавливают lib снова в вашем проекте и на этот раз связывают все вручную. Иногда автоматическая привязка вызывает эту ошибку.

16

БЫСТРЫЙ FIX (не самый лучший)

Изменение ввозных реагируют чужеродные строки заголовка: #import <React/RCTBridgeModule.h> #import <React/RCTLog.h>

To: #import "RCTBridgeModule.h" #import "RCTLog.h"

Вот пример изменений я должен был сделать для библиотека, которую я пытался использовать: https://github.com/johanneslumpe/react-native-fs/pull/238/files

+11

Если вы внимательно прочитали заметки о выпуске, я думаю, что это наоборот - новый/одобренный способ - #import '? [commit here] (https://github.com/facebook/react-native/commit/e1577df1fd70049ce7f288f91f6e2b18d512ff4d) – user

+0

Спасибо, я обновил решение – Simar

+1

Я знаю, что кажется обратным, что рекомендуют документы, но указанный формат '#import" RCTBridgeModule.h "действительно помогли мне сегодня. – paws

3

Последние выпуски библиотек с реакциями, как описано в предыдущих сообщениях и here есть нарушение совместимость меняется. Если вы не планируете обновить реагировать родной 0.40+ пока вы можете принудительно установить предыдущую версию библиотеки, например, с помощью реакции-нативный-фс:

npm install --save -E [email protected] 
2

Для зрителей, которые получили эту ошибку после обновления Реагировать Native до 0,40+, вам может потребоваться запустить react-native upgrade в командной строке.

+4

Я пытаюсь это прямо сейчас. Как насчет использования [response-native-git-upgrade] (https://github.com/facebook/react-native/tree/master/react-native-git-upgrade) вместо этого? – camou

+0

Правильно, это другой вариант. Я думаю, они оба будут работать. – lawrence

0

Я смог построить отладку, но мне не удалось создать архив.

Я решил эту проблему, перетащив React.xcodeproj в/node_modules/response-native/Реагируя на мой корневой каталог в Xcode, а затем добавил React как целевую зависимость в фазах сборки> целевые зависимости.

2

Если Libraries/React.xcodeproj красные в Xcode затем переустановить node_modules

rm -rf node_modules && yarn 

Моего вновь созданного проект от реакции родной 0.46.3 была красным: SI имеет НПЙ 5.3.0 и пряжи 0.24.5, когда я сделал реагирующим native init

+0

Спасибо, я подталкивал свой проект к github. И когда он снова клонировал, мне не хватало библиотек React, которые показывались красным цветом. Ваша команда работает. – Rifinio