Я намагаюся запустити свою програму React Native в XCode, і я продовжую отримувати цю помилку. Я не можу зрозуміти, як вирішити проблему. Будь-які пропозиції?
Знімок екрана помилки в XCode:
Я намагаюся запустити свою програму React Native в XCode, і я продовжую отримувати цю помилку. Я не можу зрозуміти, як вирішити проблему. Будь-які пропозиції?
Знімок екрана помилки в XCode:
Відповіді:
Видаліть модулі вузлів, потім запустіть npm install
(або ще краще пряжу), і після того, як все закінчиться завантаженням, запустіть, react-native upgrade
який повинен дати вам можливість замінити старі файли на шаблонні, тим самим, ви з’єднаєте свої рідні залежності в реакційному корінці, який має вирішити вашу проблему. Звичайно, не забудьте почистити проект у Xcode.
react-native upgrade
будую розширення дій, і після запуску всі мої настройки збірки були видалені.
xcode Product-> Scheme-> Управління схемами натисніть "+" на Цільовій панелі, щоб вибрати "React" і встановити, що React є спільним.
Для всіх тих, хто використовує React Native 0.40.0 або новішої версії , імпорт заголовків суттєво змінився від 0,40 RN та призвів до того, що у файлі .h файлів не знайдено помилок. react-native-git-upgrade
виправили проблему для мене під час налагодження, але збір не вдався до випуску / архіву.
Я використовую RN 0,42,3 з какаодами та 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
схемою.
Якщо у вас немає схеми реагування, створіть нову схему Selecting scheme menu -> Manage Scheme -> + -> choose React
, а потім позначте схему реагування як спільну
Крім того, якщо ви використовуєте 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> react-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 Native 0.61. Я створив розширення Share і отримував цю помилку. Мені потрібно було замінити:
#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
Переконайтеся, що на шляху до вашого проекту немає пробілів. Просто перейменування папок та видалення пробілів вирішує проблему для мене.