Файл React/RCTEventEmitter.h не найден
Я пытаюсь реализовать PushNotificationIOS с помощью отдельного приложения Expo. Я запускаю SDK 21.0.0 (React Native 0.48).
Я получаю React/RCTEventEmitter file not found
Я выполнил следующие шаги:
- Откройте мой проект
.xcworkspace
- Перетащите
RCTPushNotification.xcodeproj
в папку "Мои библиотеки" - Добавлен
libRCTPushNotification.a
в App > Build Phases > Link Binary With Libraries
на libRCTPushNotification.a
App > Build Phases > Link Binary With Libraries
- Добавлены
$(SRCROOT)/../node_modules/react-native/Libraries
по пути поиска заголовков. Я также пробовал без /../
. У меня есть группа "Под" в списке "Пути поиска заголовков".
Затем я добавил следующее в AppDelegate.m
но когда я AppDelegate.m
к файлу (⌘ + щелчок), я получаю знак вопроса.
#import <React/RCTPushNotificationManager.h>
Если я изменю его на ниже, он работает, я могу щелкнуть
#import "RCTPushNotificationManager.h"
Однако это моя проблема
Когда я RCTPushNotificationManager.h
свой проект, я получаю RCTPushNotificationManager.h
ошибку в RCTPushNotificationManager.h
чтобы сказать:
'React/RCTEventEmitter.h' file not found
Ответы
Ответ 1
@Дэн Я столкнулся с точно такой же проблемой, она также возникает для RCTLinking и других библиотек, зависящих от eventEmitter.h и отдельного проекта Expo.
Проблема заключается в том, что RCTPushNotification не имеет ссылки на React из файла Cocoapods React, так как Expo управляет React в Cocoapods. Таким образом, вы должны зайти в RCTPushNotification.xcodeproj, затем в Targets - RCTPushNotification Heath Search Paths и добавить ссылку на "ios/Pods/Headers/Public/React" и установить для рекурсии.
Самый простой способ сделать это - перейти на iOS/Pods/Headers/Public/React и перетащить папку в настройки сборки для путей поиска заголовков, как показано на рисунке ниже.
![enter image description here]()
Поднимитесь, наконец, после этого вам, скорее всего, придется ссылаться на ReactCommon/yoga, ReactCommon/yoga, однако, должно быть в ваших 'node_modules/реагировать-нативном /ReactCommon/yoga'
Ответ 2
Это работает для меня на отдельном проекте Экспо
"react": "16.6.3",
"react-native": "0.58.6",
Добавьте 'RCTPushNotification'
в ваш модуль и запустите pod install
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'RCTPushNotification',
]
Ответ 3
- Откройте проект в XCode.
- Откройте папку "Библиотеки". Вы должны увидеть React.xcodeproj и несколько RCT *.xcodeproj.
- Перетащите React.xcodeproj в каждый из других проектов.
- Нажмите на каждый проект и перейдите на вкладку "Фазы построения".
- Нажмите "Зависимости целей" и добавьте "React" в качестве целевой зависимости
Ответ 4
Поскольку ничто из вышеперечисленного не помогло мне, я начал экспериментировать, и вот что решил для меня:
1. Ссылка React-Core & Общественный
Как упомянул Escamilla, в xcode откройте RCTPushNotification.xcodeproj
и в Build Settings
найдите header search path
и добавьте туда 2 пути:
"$(SRCROOT)/../../../../ios/Pods/Headers/Public"
"$(SRCROOT)/../../../../ios/Pods/Headers/Public/React-Core"
2. Скопируйте RCTPushNotificationManager.h
вручную в React-Core
В корневой папке вашего проекта выполните:
cp ./node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotificationManager.h ./ios/Pods/Headers/Public/React-Core/React
Это скопирует RCTPushNotificationManager.h
, который находится в node_modules/react-native/Libraries/PushNotificationIOS/
, вручную в папку React
, которая находится в ios/Pods/Headers/Public/React-Core/React
.
Я понятия не имею, если это хорошее решение, но оно работает. Может быть, если бы кто-то мог объяснить мне, почему его там не было? Это было бы золотым.
Я очень тщательно следовал инструкциям по установке 1 к 1, все делал правильно, но ничего не получалось, кроме упомянутой выше ручной копии...
Кроме того, это случайно сбрасывается время от времени и должно быть сделано снова -.- '
Ответ 5
Просто выполните следующие действия:
- создать проект
react-native init project
.
- добавьте эту строку в файл pod в папке ios:
pod 'React-RCTPushNotification', :path => '../node_modules/react-native/Libraries/PushNotificationIOS'
cd ios && pod install
cd .. && react-native run-ios
Не нужно делать грязные ручные ссылки
Ответ 6
ИСПОЛЬЗУЙТЕ эти библиотеки:
следуйте шаг за шагом,
все будет работать
больше ничего не нужно
не забудьте
pod install
Ответ 7
это сработало для меня!
добавить пропущенную библиотеку вручную
https://github.com/microsoft/react-native-code-push/issues/1565#issuecomment-489738672