React-native-onesignal: Файл OneSignal / OneSignal.h не найден

Созданный на 24 янв. 2017  ·  44Комментарии  ·  Источник: OneSignal/react-native-onesignal

Были и выпуски уже открытые и закрытые, но это все еще и проблема. См. Проблему 133 .

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

React Native 0.40.0 OneSignal 3.0

Самый полезный комментарий

Слито, протестировано и исправлено.

Все 44 Комментарий

По сути, это означает, что фреймворк не обновляется в модуле, если вы решите не использовать CocoaPods. Я прав?

Да, я думаю, это правильно. Я не использую CocoaPods.

Понятно. Текущая проблема заключается в том, что я не могу найти способ заставить библиотеку распознавать фреймворк, если он находится вне библиотеки, например, в группе Frameworks в проекте Xcode. Это делает библиотеку зависимой от конкретной версии фреймворка, а не добавляет ее вручную.

Эй, нашел для тебя репо с подсказками. Мой код снова заработал.
https://github.com/eriksape/react-native-onesignal#faq -repeating-issues

@avishayil ,

Я не очень хорошо знаком с objective-c, мне очень жаль, что я не могу помочь решить проблему.
Можно ли обновить документацию, чтобы люди узнали о проблеме?

Тем временем я скопировал каталог OneSignal.framework в свой проект ios с правильным каталогом «Заголовок» и файлом «OneSignal» и изменил «Пути поиска Framework», чтобы указать на него.

Мне придется следить за обновлениями, но пока это работает для меня. Спасибо!

@haxtrujillo Также

@dguillamot не забудьте установить «Пути поиска заголовка» и «Пути поиска заголовка», скопируйте файлы из версии «B» (Текущая) на два уровня выше.

screen shot 2017-01-25 at 11 13 26 pm

Мне все еще интересно, как это решить без этого "некрасивого" способа. @ jkasten2 вы можете здесь помочь?

У меня такая же проблема, плюс React / <...>. H не найден.
screen shot 2017-01-26 at 2 31 54 pm

screen shot 2017-01-26 at 7 37 18 pm

У меня такая же проблема с React-Native 0.4.0,

После установки какого-то плагина (response-native-firestack) это происходит внезапно.

@rustykey @bitsal

Мне пришлось сделать две разные вещи, чтобы заставить его работать:

0 - я создал подпапку в моей основной папке проекта (где находится файл рабочей области xcode) с именем / ios / OneSignal

1 - Затем, аналогично тому, что сказал выше haxtrujillo, в папке node_modules / response-native-onesignal / ios / Frameworks вы можете дважды щелкнуть / развернуть файл OneSignal.framework. Внутри есть подпапка Versions / B. Выберите там файлы «Заголовки» и «OneSignal», скопируйте (CMD-C), а затем снова выберите «файл» OneSignal.framework и вставьте.

Затем я скопировал этот новый файл OneSignal.framework в папку / ios / OneSignal, которую создал на шаге 0 выше.

2 - Затем я скопировал файл node_modules / response-native-onesignal / ios / RCTOneSignal.xcodeproj и папку RCTOneSignal в папку ios / OneSignal, созданную на шаге 0.

Затем в Xcode я добавил файл OneSignal.Framework в папку Frameworks моего рабочего пространства xcode и добавил RCTOneSignal.xcodeproj в папку Libraries. Затем я выбрал файл xcodeproj в папке «Библиотеки» в xcode. Убедившись, что целью является RCTOneSignal, я перешел в BuildSettings и изменил пути поиска фреймворка на «$ (PROJECT_DIR) / OneSignal». Таким образом он мог найти созданный мной новый OneSignal.framework. Я также изменил пути поиска заголовков в той же области настроек сборки, чтобы убедиться, что он улавливает React. В моем случае это было проще всего сделать относительно PROJECT_DIR как '$ (PROJECT_DIR) /../ node_modules / react-native / React'

После этих изменений все теперь находится в моей папке ios / OneSignal, и мне вообще не нужна папка node_modules. Я все еще использую его для Android. Но если вы используете только ios, вам не нужна папка node_module, поскольку этот обходной путь в основном создает локальную копию.

Это определенно не очень хорошее долгосрочное решение, и его следует отменить после того, как автор обновит этот пакет. Это просто сокращение модуля узла путем копирования проекта, чтобы вы могли изменить параметры сборки. После изменения модуля узла для устранения этой проблемы эти изменения должны быть отменены.

Спасибо @dguillamot !

Я сделал это немного по-другому, но смысл тот же, я думаю
package.json :

"scripts": {
     ...
    "fix-onesignal-ios-issue-161": "cd node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework && cp -R Versions/B/* . && cd ../../../../..",
    "run-ios": "npm run fix-onesignal-ios-issue-161 && echo '.env.local' > /tmp/envfile && react-native run-ios",
     ...
}

PS:
@avishayil
Я заметил в « Пути поиска заголовков» проекта RCTOneSignal строку вроде этой "$(SRCROOT)/../../../ios/Pods/Headers/Public/OneSignal" .
Кажется, библиотека требует, чтобы у меня были папки node_modules и ios на одном уровне. В некоторых случаях (когда структура проекта немного отличается) это не сработает, потому что нет папки $(SRCROOT)/../../../ios .

PS 2:
Кроме того, у меня была проблема типа React/RCT<...>.h file not found . Я исправил, создав React сначала из XCode (см. Https://github.com/facebook/react-native/issues/12042#issuecomment-275025960).

react-native run-ios пока не работает (только из XCode.

Папки Versions/B с версии 2.1.5 собственного iOS OneSignal SDK. Можете ли вы проверить, загружаете ли вы последнюю версию OneSignal.framework? В настоящее время 2.3.5 - это последняя версия.

@ jkasten2 правильно, 2.3.5 версия сейчас
Я уверен, потому что я много раз бегал

rm -rf node_modules/react*
rm -rf ios/build/* && rm -rf ios/Pods/*
rm -rf ~/Library/Developer/Xcode/DerivedData/*

КСТАТИ,

react-native-cli: 2.0.1
react-native: 0.40.0

Подфайл:

pod 'OneSignal', '~> 2.0'

но на самом деле он устанавливает 2.3.5 , я вижу это в выводе консоли

@ jkasten2 ,
Я использую React Native 0.40.0, OneSignal 3.0 и не использую CocoaPods.

@ jkasten2
Ты прав. В Versions/B папки ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework/Versions/ :

Current -> A

но Versions/B все еще здесь node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework/Versions/

package.json
"react-native-onesignal": "3.0.0",

Похоже, проблема заключается в отсутствии символических ссылок из тега выпуска 3.0.0.

@avishayil Я заметил, что в теге v3.0.0 отсутствуют, но они есть у мастера.
https://github.com/geektimecoil/react-native-onesignal/tree/v3.0.0/ios/Frameworks/OneSignal.framework
https://github.com/geektimecoil/react-native-onesignal/tree/master/ios/Frameworks/OneSignal.framework

В репозитории родного iOS SDK также есть символические ссылки.
https://github.com/OneSignal/OneSignal-iOS-SDK/tree/2.3.5/iOS_SDK/Framework/OneSignal.framework

Можете ли вы выпустить обновление с этими недостающими файлами?

@ jkasten2 Итак , в этом проекте в ветке examples :
https://github.com/geektimecoil/react-native-onesignal/tree/examples/examples/RNOneSignalFramework

Попробуйте собрать этот проект, он говорит, что отсутствуют файлы заголовков.

@avishayil Я сделал новый клон и следовал приведенным ниже инструкциям, но не столкнулся с проблемой .h .
https://github.com/geektimecoil/react-native-onesignal#running -example-project

Примечание. Инструкции должны быть cd OneSignalRN вместо cd OneSignalRNExample .

Запустите проект как с терминала, как указано в инструкциях, так и напрямую из Xcode, открыв файл RNOneSignal.xcworkspace .

Привет @ jkasten2 , нет проблем при создании проекта с CocoaPods. Проблема возникает при попытке создать проект с фреймворком без CocoaPods.

Я уже упоминал об этом раньше, простите меня, если это дубликат, но: Одна из проблем заключается в том, что файл заголовка OneSignal.h IS находится в репо, но они не находятся в папке с именем "OneSignal", как они есть упоминается.

@avishayil все еще проблема без какао?, извините, что не заметил этого, позвольте мне увидеться с ребятами, и я дам вам знать :)

@eriksape ага

@avishayil Я не знаю, что случилось, мой метод вставки все еще в порядке, поскольку я вижу, что какао-стручки делают то же самое, но автоматически и загружают множество пакетов с последней версией OneSignal-iOS-SDK, как сказал @ jkasten2 это 2.3.5, знаете, что вы понизили версию SDK сейчас?

Ребята, у меня проблема с заголовком при использовании v2 и Cocoapods: / Есть подсказки, почему? Должен ли я создать специальный выпуск?

На этой неделе я посмотрю на v2.

Я использую RN40 и OneSignal3.0, использую Framework и все еще получаю сообщение «OneSignal / OneSignal.h не найден». Мои пути заголовка / фреймворка установлены правильно, библиотека была связана с реактивной ссылкой, поэтому я не вижу никаких проблем с настройкой.

Хотя у меня было то же самое с Cocoapods.

У меня была эта ошибка для v3.0.0 и я реагировал на родную версию 0.41. Я получил его, запустив команду response-native link.

Исправление: по-прежнему появляется ошибка сборки :(

Вы, ребята, используете CocoaPods?

@avishayil Нет, я не использую Cocoapods и не буду его использовать. Я только что получил ваши последние изменения в версии 3.0.2, но она все еще не работает. Есть обновления по исправлению этого?

@larryranches Я все еще смотрю на это вместе с командой OneSignal. @ jkasten2, и я

@avishayil Спасибо, что

Та же проблема при работе с Xcode. Приложение начинается с node node_modules/react-native/local-cli/cli.js run-ios но происходит сбой, потому что RNOneSignal - это undefined .

@avishayil Я пробовал использовать Coca и Framework, результат тот же.

@ edo1493 вы можете поделиться репо с воспроизведенной ошибкой?

Этот пул-реквест сработал для меня ✌️:
https://github.com/geektimecoil/react-native-onesignal/pull/184

Интересно, как вы его построили? С нуля или в уже существующий проект?

@avishayil в существующий проект (с описанной здесь проблемой) и следил за обновленным README по адресу https://github.com/jkasten2/react-native-onesignal.
(Пришлось удалить Podfile и связанные файлы)

PR # 184 мне тоже подходит

Слито, протестировано и исправлено.

Я сделал все, что до сих пор не нашел :(

У меня тоже есть эта ошибка с Cacaopods ... RN 0.50 и react-native-onesignal ^ 3.0.5

кто-нибудь исправит эту ошибку? Я сталкиваюсь с RN 0.51 и реагирую на родной сигнал ^ 3.0.5

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги