Подтвердить что ты не робот

Файл "RCTBundleURLProvider.h" не найден - AppDelegate.m

Я пытаюсь запустить приложение React Native в XCode, и я продолжаю получать эту ошибку. Я не могу понять, как решить проблему. Любые предложения?

Экранный снимок с ошибкой в ​​XCode:

screenshot

4b9b3361

Ответ 1

Удалите node модули, затем запустите npm install (или, еще лучше, пряжу), и после того, как все закончит загрузку, запустите react-native upgrade, который должен предоставить вам возможность заменить старые файлы на шаблонные, тем самым вы повторно привяжите свои собственные зависимости в реакции-native, которые должны исправить вашу проблему. Конечно, не забудьте очистить свой проект в Xcode.

Ответ 2

xcode Product- > Scheme- > Manage Schemes нажмите "+" в Target, чтобы выбрать "React" и установить, что React является общим.

Ответ 3

Для всех тех, кто использует React Native 0.40.0 или выше, заголовок импорта имеет значительное изменение от RN 0.40.0 и приводит к большому количеству файлов .h обнаружены ошибки. react-native-git-upgrade исправил проблему для меня во время отладки, но сборка сбоев в релизе/архиве.

Я использую RN 0.42.3 с cocoapods и Xcode 8.2.1

Чтобы полностью исправить это, перейдите в Xcode > Product > Scheme > Edit Scheme >

  • Untick Parallelize Build введите описание изображения здесь
  • Нажмите кнопку "+" в "Цели" и добавьте Реагировать введите описание изображения здесь
  • Перетащите добавленную Реагировать в начало списка в Целях. введите описание изображения здесь

Теперь очистите проект и постройте

Ответ 4

Ни один из других предложений не исправил мою ошибку, но этот сделал.

1 - Создать подфайл

Создайте файл с именем ios/Podfile внутри вашего адаптивного приложения со следующим содержимым:

# 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

2 - Установить подфайл

Запустите команду pod install из папки ios.

3 - Reset XCode

Перезапустите XCode, и ошибка должна исчезнуть.

Ответ 5

Я столкнулся с этой проблемой после первой попытки запустить сборку React в XCode, и все, что мне нужно было сделать, это на самом деле построить и запустить, чтобы ошибка исчезла (после выбора команды и правильной подготовки). Иногда XCode показывает ошибки, которые на самом деле не являются ошибками, пока они не компилируются и не связывают вещи в первый раз.

Ответ 6

Я решил эту проблему, выполнив следующие действия:

  1. В xcode выберите корень проекта.
  2. Перетащите React.xcodeproj из Libraries в корень проекта.
  3. Нажмите на название проекта (в моем случае это имя SaleKit) в TARGETS
  4. Выберите Build Phases
  5. В раскрывающемся списке " Target Dependencies добавьте React
  6. Восстановить или перезапустить

enter image description here

Ответ 7

Для моего случая в ReactNative "0.54.2" я решил это следующим решением

В Product->Scheme->Manage Schemes выберите Product->Scheme->Manage Schemes, снимите флажок "YourProject" -tvOS, чтобы установить его как не Shared

Ответ 8

Решение, которое работает для меня, состоит в том, чтобы поделиться схемой React.

Если у вас нет схемы React, создайте новую с помощью Selecting scheme menu -> Manage Scheme -> + -> choose React, затем пометьте схему React как Shared

enter image description here

enter image description here enter image description here

Кроме того, если вы используете Xcode 10, перейдите к File -> Project Settings и выберите Legacy build system

enter image description here

Ответ 9

Запустите npm install в каталоге проекта, чтобы установить react-native разрешение этой ошибки.

Ответ 10

Возможно, вы .xcodeproj файл .xcodeproj после установки модуля pod.

Закройте его и откройте файл .xcworkspace. Это сработало для меня.

Ответ 11

Попробуйте следующее:

  • Очистить (cmd + shift + K).
  • Build core React - выберите React как схему в Xcode и постройте его (cmd + B).
  • Постройте библиотеку, которая не работает (например, RCTText).
  • Создайте свое приложение.

Ответ 12

У меня была та же проблема, и я исправил ее, разместив RNFIRMessaging.h над React/RCTBundleURLProvider.h

Итак, я выгляжу так:

#import "AppDelegate.h"
#import "RNFIRMessaging.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

Ответ 13

Лучшее решение:

Откройте "Настройки сборки" для вашего проекта в XCode, найдите "Путь поиска заголовка".

Дважды щелкните рядом с "Путь поиска заголовка", где другие свойства имеют "да" или "нет"

Теперь добавьте следующее в "Путь поиска заголовка" (в настройках сборки):

$ (SRCROOT)/../node_modules/реагировать-нативный /React $ (SRCROOT)/../node_modules/реагировать-нативный /React/Base Не забудьте сделать их обоих рекурсивными.

Ответ 14

Я столкнулся с той же проблемой. Затем я удалил node.try, чтобы использовать эти шаги

  • Удалить папку node_modules - rm -rf node_modules && & & npm install
  • Reset cacheager - rm -fr $TMPDIR/response- * или node_modules/react-native/packager/packager.sh - reset -cache
  • Очистить часы watchman - watchman-del-all

затем выполните сборку и посмотрите

Ответ 15

В базовом каталоге проекта я запускаю:

node_modules/react-native/packager/packager.sh --reset-cache

В результате получилось:

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

Я обнаружил, что диспетчер пакетов не может работать, когда запущен другой процесс пакета.

Я нашел, что процесс работает с:

lsof -i :8081

Чем я kill 9 ... процесс.

После того, как я закрыл Xcode, запустите:

npm install

И снова начал Xcode, с этого момента все работает так, как ожидалось!!

Ответ 16

Я обнаружил, что мое исправление этой проблемы после обновления React состояло в том, чтобы изменить объявление #import "RCTBundleURLProvider.h" на #import <React/RCTBundleURLProvider.h>

Ответ 17

щелкните Product-> Схема-> Управление Schemes->+. а затем добавить реагировать как общий доступ. также убедитесь, что там есть и название вашего проекта.

Ответ 18

Если вы не выполнили npm install, вы, вероятно, столкнетесь с этой проблемой.

Ответ 19

Я пробовал все предложения, и ни один из них не работал в i, я удалил репо и снова клонировал его, и это работает для меня, поэтому мое предложение фиксирует ваши изменения, и они снова клонируют репо, что сработало для меня.

Ответ 20

Я рассмотрел все ответы, упомянутые выше.

Вот решение для меня:

ШАГ 1:

Запуск:

npm install react-native-fcm --save 

Это приведет к созданию каталога в вашем проекте под node_modules > response-native-fcm

Добавить реагировать-native-fcm в ваш проект

ШАГ 2:

Вам нужно добавить '$(SRCROOT)/../node_modules/react-native-fcm/ios' в  пути поиска заголовка в настройках сборки.

Добавить в пути поиска заголовков

Эти два шага работали для меня, чтобы удалить ошибку.

Более подробную информацию вы можете найти по ссылкам:

https://github.com/evollu/react-native-fcm/issues/63

https://github.com/evollu/react-native-fcm/issues/21

Ответ 21

В моем случае я не смог удалить node_modules и переустановить, а также не смог сделать react-native-git-updgrade или react-native upgrade, потому что хотел остаться на RN-0.59, потому что .60 вызывает проблемы для моих зависимостей.

В любом случае, моя ситуация заключалась в том, что мне не хватало файла 'React/RCTBundleURLProvider.h'. Я уже имел React, доступный в моих схемах. Это не было в моем каталоге библиотек. Я проверил мои настройки сборки цели.

Внутри целевых зависимостей у меня также был React.

Я удалил целевую зависимость "Реагировать", затем снова добавил. почистил сборки папок, пересобрал проект. это сработало.

Ответ 22

вам нужно установить реакцию native, в терминальном режиме

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

затем

brew install node
brew install watchman
npm install -g react-native-cli

Источник:
https://facebook.github.io/react-native/docs/getting-started.html

Ответ 23

Убедитесь, что путь к вашему проекту не имеет пробелов. Просто переименование папок и удаление пробелов решает проблему для меня.