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