Я пытаюсь запустить свое приложение React Native в XCode и продолжаю получать эту ошибку. Не могу понять, как решить проблему. Какие-либо предложения?
Снимок экрана с ошибкой в XCode:
Я пытаюсь запустить свое приложение React Native в XCode и продолжаю получать эту ошибку. Не могу понять, как решить проблему. Какие-либо предложения?
Снимок экрана с ошибкой в XCode:
Ответы:
Удалите модули узлов, затем запустите npm install
(или еще лучше пряжу) и после того, как все будет загружено, запустите, react-native upgrade
который должен дать вам возможность заменить старые файлы шаблонными, тем самым вы повторно свяжете свои собственные зависимости в response-native, который должен решить вашу проблему. Конечно, не забудьте очистить свой проект в Xcode.
react-native upgrade
все мои настройки сборки были удалены.
xcode Product-> Scheme-> Manage Schemes нажмите «+» в Target, чтобы выбрать «React» и установите React is shared.
Для всех, кто использует React Native 0.40.0 или выше, импорт заголовков существенно отличается от RN 0.40.0 и приводит к большому количеству ошибок не найденных файлов .h. react-native-git-upgrade
исправлена проблема для меня во время отладки, но сборка не выполняется в выпуске / архиве.
Я использую RN 0.42.3 с cocoapods и Xcode 8.2.1
Чтобы полностью исправить это, перейдите в Xcode> Продукт> Схема> Изменить схему>
Теперь очистите проект и соберите
Ни одно из других предложений не исправляло мою ошибку, но это помогло.
Создайте файл с именем 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
Запустите команду pod install
из папки ios.
Перезапустите XCode, и ошибка должна исчезнуть.
Я столкнулся с этой проблемой после первой попытки запустить сборку React в XCode, и все, что мне нужно было сделать, это собрать и запустить, чтобы ошибка исчезла (после выбора команды и надлежащей подготовки). Иногда XCode показывает ошибки, которые на самом деле не являются ошибками, пока он не компилирует и не связывает вещи в первый раз.
Решение, которое мне подходит, - поделиться React
схемой.
Если у вас нет схемы React, создайте новую Selecting scheme menu -> Manage Scheme -> + -> choose React
, затем отметьте схему React как Shared
Кроме того, если вы используете Xcode 10, перейдите File -> Project Settings
и выберите Legacy build system.
Я решил эту проблему, выполнив следующие шаги:
React.xcodeproj
из Libraries
в корень проекта.SaleKit
) вTARGETS
Build Phases
Target Dependencies
добавитьReact
Для моего случая в ReactNative "0.54.2" я решил это следующим решением
В Xcode выберите Product->Scheme->Manage Schemes
, снимите галочку 'YourProject' - tvOS установите для него значение "Не общий"
Лучшее решение :
Откройте «Параметры сборки» для вашего проекта в Xcode, выполните поиск «Путь поиска заголовка».
Дважды щелкните рядом с «Путь поиска заголовка», где у других свойств есть «да» или «нет».
Теперь добавьте следующее в «Путь поиска заголовка» (в разделе «Параметры сборки»):
$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base
Не забывайте Сделайте их оба рекурсивными.
Запустите npm install
в каталоге своего проекта, чтобы react-native
устранить эту ошибку.
В базовом каталоге проекта, который я запускаю:
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, с этого момента все работает как положено !!
У меня была такая же проблема, и я исправил ее, разместив RNFIRMessaging.h над React / RCTBundleURLProvider.h
Вот так я буду выглядеть:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
Попробуйте следующее:
Я столкнулся с той же проблемой. Затем я удалил узел. Попробуйте использовать эти шаги
затем сделай сборку и посмотри
Для меня замена
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
по
#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>
в файле AppDelegate.m работал.
Если вы еще не запускали, npm install
вы, вероятно, столкнетесь с этой проблемой.
Я прошел все ответы, упомянутые выше.
Вот решение сработало для меня:
ШАГ 1:
Бегать:
npm install react-native-fcm --save
Это приведет к созданию каталога в вашем проекте в node_modules> response-native-fcm
ШАГ 2:
Вам нужно добавить '$(SRCROOT)/../node_modules/react-native-fcm/ios'
в заголовок пути поиска в настройках сборки.
Эти 2 шага помогли мне удалить ошибку.
Для получения более подробной информации вы можете перейти по этим ссылкам:
В моем случае я не мог удалить node_modules и переустановить, и я тоже не смог этого сделать, react-native-git-updgrade
или react-native upgrade
потому что хотел остаться на RN-0.59, потому что .60 вызывает проблемы для моих зависимостей.
В любом случае моя ситуация заключалась в том, что мне не хватало файла React / RCTBundleURLProvider.h. В моих схемах уже был React. Его не было в каталоге моих библиотек. Я проверил настройки сборки моей цели .
Внутри целевых зависимостей у меня также был React.
Я удалил целевую зависимость React, а затем снова добавил. почищены папки сборки, пересобран проект. это сработало.
Я использую React Native 0.61. Я создал расширение общего доступа и получал эту ошибку. Мне нужно было заменить:
#import "RCTBundleURLProvider.h"
с участием
#import "React/RCTBundleURLProvider.h"
вам нужно установить собственный ответ, в терминале
/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
Убедитесь, что в пути к вашему проекту нет пробелов. Просто переименование папок и удаление пробелов решает для меня проблему.