Привет - предыдущий выпуск для этого был закрыт, поэтому я начинаю новый.
Я использую RN 0.39, и я сделал «response-native-link», а также следовал всем инструкциям из README, но мы не используем Pods, поэтому у меня нет никаких Podfiles для обновления. Как мне это сделать без подфайлов?
По-прежнему появляется сообщение об ошибке, указанное выше.
У кого-нибудь есть предложение без подфайлов?
добавление путей поиска фреймворка со значением
$(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?
если бы вы сделали это хорошо, вы бы увидели связанную библиотеку
@eriksape , да, вот скриншоты xcode.
Я тестировал с 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>
^
Все в порядке со всем проектом, без ошибок, пример выложу
@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
Извините, я протестировал 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 есть несколько символических ссылок.
Когда мы запускаем npm install
эти каталоги отсутствуют. Их загрузка из проекта и добавление вручную устраняет проблему . Это не идеально. Надеюсь, это сэкономит людям часы работы.
Спасибо. На самом деле это нам не помогает, потому что наши сборки проходят через систему CI, и у нас есть скрипты, которые выполняют новую проверку. Рад, что это исправят!
Привет, @haxtrujillo, могу я попросить тебя немного уточнить? Я имею в виду, откуда вы скачиваете эти символические ссылки? Первая ссылка, которую вы даете на OneSignal.framework, не показывает их.
Во-вторых, вы показываете снимок экрана, но я не уверен, это папка ./node_modules/react-native-onesignal
?
@kelset ,
Я открыл новый выпуск , в нем больше информации и как умеренно его решить.
Заголовочные файлы находятся в каталоге версий, вам нужно проверить, какая версия работает для вашего проекта.
Самый полезный комментарий
@eriksape Я не уверен, о чем вы спрашиваете, я никуда не помещаю фреймворк. Я запускаю «yarn install», и фреймворк появляется под модулями узлов.
После установки v2.0.0 я захожу в node_modules / response-native-onesignal и ищу себя:
На самом деле нет места, где существует "OneSignal / OneSignal.h". Файл «OneSignal.h» существует, но не в папке «OneSignal». Если мы сможем исправить этот путь и обойти эту ошибку сборки, мои проблемы будут решены.