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

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

Привет - предыдущий выпуск для этого был закрыт, поэтому я начинаю новый.

Я использую RN 0.39, и я сделал «response-native-link», а также следовал всем инструкциям из README, но мы не используем Pods, поэтому у меня нет никаких Podfiles для обновления. Как мне это сделать без подфайлов?

По-прежнему появляется сообщение об ошибке, указанное выше.

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

@eriksape Я не уверен, о чем вы спрашиваете, я никуда не помещаю фреймворк. Я запускаю «yarn install», и фреймворк появляется под модулями узлов.

После установки v2.0.0 я захожу в node_modules / response-native-onesignal и ищу себя:

$ find . | grep OneSignal.h
./ios/Frameworks/OneSignal.framework/Versions/A/Headers/OneSignal.h
./ios/Frameworks/OneSignal.framework/Versions/B/Headers/OneSignal.h
./ios/RCTOneSignal/RCTOneSignal.h

На самом деле нет места, где существует "OneSignal / OneSignal.h". Файл «OneSignal.h» существует, но не в папке «OneSignal». Если мы сможем исправить этот путь и обойти эту ошибку сборки, мои проблемы будут решены.

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

У кого-нибудь есть предложение без подфайлов?

добавление путей поиска фреймворка со значением

$(SRCROOT)/../node_modules/react-native-onesignal

и добавив OneSignal.framework, который входит в этот пакет, в проект на xcode

Я также ищу, как бы установить его без стручков ... есть ли для этого какой-нибудь документ?

@gplopes попробуйте то, что я прокомментировал раньше, я сделал это и не использую поды 👍

@eriksape спасибо за ответ, я добавил путь, как вы упомянули, но я все еще получаю
#import <OneSignal/OneSignal.h> файл не найден.
я использую

"react-native": "0.36.1",
"react-native-onesignal": "2.0.0",

@gplopes и добавили в проект OneSignal.framework?

если бы вы сделали это хорошо, вы бы увидели связанную библиотеку

image

@eriksape , да, вот скриншоты xcode.

screen shot 2017-01-16 at 2 54 17 pm

screen shot 2017-01-16 at 2 53 26 pm

Я тестировал с react-native 0.39, но с "react-native-onesignal": "^ 1.2.3"

как я вижу, 1.2.3 отлично работает с react-native 0.36

@gplopes Я добавил ваше предложение в документы, оно должно решить проблему.
В любом случае, я рекомендую всем вам перейти на 3.0.0 .

Спасибо!

Конечно, если вы используете RN до 0.39, используйте v2.

@gplopes У вас когда-нибудь это работало? У меня такая же проблема с RN = 0.39, v2.0.0 этой библиотеки, и я следил за всеми предложениями о «Связанных каркасах и библиотеках» и путях поиска.

Не могли бы вы предоставить репо, которое я могу протестировать?

Я попытался воспроизвести это в минимальном репо и столкнулся с другой ошибкой (№ 139). Может быть, вы можете создать вилку https://github.com/GeoffreyPlitt/react_native_minimal и показать нам версию, которая работает? Если нет, я воспроизведу это, как только устраню другую ошибку.

Примечание: без коконогих моллюсков.

Как я уже говорил ранее, без кокоаподов с v1.2.3 работает нормально.
Я не знаю, зачем ему коконоды

Я буду использовать v3 после того, как зависимости в моем проекте могут использовать react-native 0.40

Я вырезал новую ветку этого минимального проекта и переключился на 1.2.3 этой библиотеки: https://github.com/GeoffreyPlitt/react_native_minimal/tree/onesignal_123

Я по-прежнему получаю следующую ошибку: вы получаете ту же ошибку или все работает нормально?

In file included from /Users/giro/react_native_minimal/ios/react_native_minimal/AppDelegate.m:10:
In file included from /Users/giro/react_native_minimal/ios/react_native_minimal/AppDelegate.h:11:
../node_modules/react-native-onesignal/ios/RCTOneSignal/RCTOneSignal.h:3:9: fatal error: 'OneSignal/OneSignal.h' file not found
#import <OneSignal/OneSignal.h>
        ^

screen shot 2017-01-18 at 22 25 45
screen shot 2017-01-18 at 22 25 36

Все в порядке со всем проектом, без ошибок, пример выложу

@eriksape, не могли бы вы сделать PR для обновления документации, чтобы использовать библиотеку без CocoaPods? Я буду признателен.

@avishayil Хорошо, я пришлю PR сегодня или завтра, какую версию OneSignal для ios вы используете? Кажется, что у OneSignal.framework отсутствуют файлы, я только что тестировал с 3.0.0.

Да, я заметил, что в OneSignal.framework отсутствуют файлы заголовков, что может быть основной причиной этой проблемы.

Обновление: @eriksape Было достаточно хорошо, чтобы разветвить, исправить и отправить мне PR, и эта ветка теперь работает с 1.2.3:

https://github.com/GeoffreyPlitt/react_native_minimal/tree/onesignal_123

Однако, когда я затем начал использовать это исправление, я заметил, что ни одно из моих уведомлений не проходило, а сервер сообщал:

Error: {"invalid_player_ids":["2ebaf054-acce-4ed6-b927-86fffd9d9c30"]}

И этот идентификатор - именно тот, который мне предоставляет эта библиотека.

Я спросил службу поддержки OneSignal об этой ошибке, и они сказали:
This means that the device with this ID is not subscribed to notifications, either because it opted-out of notifications or has uninstalled your app.

Ни то, ни другое не подходит для меня, поэтому, углубляясь в подробности, их поддержка сказала:

I see you are using a very old version of our SDK. Please update to our latest 2.X SDK to fix the subscription issue. https://documentation.onesignal.com/docs/upgrading-to-ios-sdk-20

Это означает: использование v1.2.3 позволяет мне строить на iOS, но по-прежнему не позволяет работать с уведомлениями. Поэтому я с нетерпением жду исправлений сборки v2.0.0 (с отсутствующими файлами заголовков), чтобы продолжить.

=====> Может кто-нибудь повторно открыть этот вопрос? Поскольку у нас есть еще работа? Или создать новый?

в вашем android / ios JS вам нужно создать конфигурацию для одного сигнала

что-то подобное есть в документации этого репо

@eriksape Я уже успешно выполняю Onesignal.configure (), и он отправляет мне идентификатор пользователя, который кажется правильным.

но в https://github.com/GeoffreyPlitt/react_native_minimal/tree/onesignal_123 я не вижу, как вы выполняете настройку. Также, как я знаю, когда идентификатор недействителен, вам необходимо создать новый идентификатор.

О да, извините, что сбил вас с толку - я просто использовал это репо для исправления проблем со сборкой, у меня есть еще один (частный) проект, в котором я действительно использую этот материал.

Если идентификатор недействителен, как создать новый идентификатор? Учтите, я где-то не сохранил этот ID, старый не использую. Я использую тот, который был сгенерирован при последней загрузке приложения, когда я вызвал configure ().

При необходимости я добавлю в это репо этап настройки, чтобы показать вам

эй @GeoffreyPlitt , я возвращаюсь сюда, но вижу, что разговор уже на новом уровне. К сожалению, у меня не было времени попробовать еще раз. Я надеюсь, вы, ребята, догадаетесь об этом.

@GeoffreyPlitt, вы правы насчет 1.2.3, он не регистрирует https://github.com/ OneSignal / OneSignal-iOS-SDK / архив / 2.3.5.zip

надеюсь это работает

Да, ребята, те же шаги с версией 2.0.0
screen shot 2017-01-20 at 9 42 43 am

Извините, я протестировал 1.2.3 на симуляторе, когда понял, что @GeoffreyPlitt упоминает, что он компилируется только нормально, вместо этого используйте 2.0.0

В чем проблема? или в разговоре много вопросов? Во всяком случае, вот мое решение по названию этой проблемы:
https://github.com/geektimecoil/react-native-onesignal/issues/152#issuecomment -274124225

Я создал новую проблему, № 153, в которой отражена работа, оставшаяся для ее исправления.

@avishayil, спасибо за обходной путь, но я беспокоюсь, что это затруднит обновление для меня в будущем. Я надеюсь, что мы действительно сможем исправить это должным образом, чтобы все работало из коробки.

@GeoffreyPlitt, где вы положили OneSignal.framework? обратите внимание, что с $(SRCROOT)/../node_modules/react-native-onesignal он должен быть внутри маршрута response-native-one-signal

@avishayil проблема с 2.0.0 такая же, как и в запросе на вытягивание с 3.0.0

@eriksape Я не уверен, о чем вы спрашиваете, я никуда не помещаю фреймворк. Я запускаю «yarn install», и фреймворк появляется под модулями узлов.

После установки v2.0.0 я захожу в node_modules / response-native-onesignal и ищу себя:

$ find . | grep OneSignal.h
./ios/Frameworks/OneSignal.framework/Versions/A/Headers/OneSignal.h
./ios/Frameworks/OneSignal.framework/Versions/B/Headers/OneSignal.h
./ios/RCTOneSignal/RCTOneSignal.h

На самом деле нет места, где существует "OneSignal / OneSignal.h". Файл «OneSignal.h» существует, но не в папке «OneSignal». Если мы сможем исправить этот путь и обойти эту ошибку сборки, мои проблемы будут решены.

OneSignal.framework - это то же самое, что здесь?

https://github.com/OneSignal/OneSignal-iOS-SDK/archive/2.3.5.zip

@eriksape Я не знаю?

Вот публичное минимальное репо, которое воспроизводит ошибку сборки: https://github.com/GeoffreyPlitt/react_native_minimal/tree/onesignal

Удалось ли кому-нибудь решить эту проблему? столкнулся с той же проблемой. Реагировать 0.40.0 + OneSignal 3.0

Хорошо, я решил свою проблему, это временное решение. В OneSignal.framework есть несколько символических ссылок.
onesignal

Когда мы запускаем npm install эти каталоги отсутствуют. Их загрузка из проекта и добавление вручную устраняет проблему . Это не идеально. Надеюсь, это сэкономит людям часы работы.

Спасибо. На самом деле это нам не помогает, потому что наши сборки проходят через систему CI, и у нас есть скрипты, которые выполняют новую проверку. Рад, что это исправят!

Привет, @haxtrujillo, могу я попросить тебя немного уточнить? Я имею в виду, откуда вы скачиваете эти символические ссылки? Первая ссылка, которую вы даете на OneSignal.framework, не показывает их.
Во-вторых, вы показываете снимок экрана, но я не уверен, это папка ./node_modules/react-native-onesignal ?

@kelset ,

Я открыл новый выпуск , в нем больше информации и как умеренно его решить.

Заголовочные файлы находятся в каталоге версий, вам нужно проверить, какая версия работает для вашего проекта.

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