React-native-onesignal: Arquivo OneSignal / OneSignal.h não encontrado

Criado em 7 jan. 2017  ·  40Comentários  ·  Fonte: OneSignal/react-native-onesignal

Olá, o problema anterior foi encerrado, então estou iniciando um novo.

Estou no RN 0,39 e fiz 'react-native-link' e também seguindo todas as instruções do README, mas não usamos pods, então não tenho podfiles para atualizar. Como faço isso sem Podfiles?

Ainda estou recebendo o erro acima.

Comentários muito úteis

@eriksape Não tenho certeza do que você está perguntando, não estou colocando o framework em lugar nenhum. Eu executo "yarn install" e a estrutura aparece nos módulos de nó.

Depois de instalar a v2.0.0, vou para node_modules / react-native-onesignal e procuro por mim mesmo:

$ 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

Realmente não há nenhum lugar onde exista "OneSignal / OneSignal.h". O arquivo "OneSignal.h" existe, mas não em uma pasta chamada "OneSignal". Se pudermos corrigir esse caminho e superar esse erro de compilação, meus problemas serão resolvidos.

Todos 40 comentários

Alguém tem uma sugestão sem Podfiles?

adicionando os caminhos de pesquisa da estrutura com o valor

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

e adicionar o OneSignal.framework que está incluído neste pacote para o projeto no xcode

Também estou procurando como instalá-lo sem pods ... há algum documento para isso?

@gplopes tente o que eu comentei antes, eu fiz isso e não uso pods 👍

@eriksape obrigado por responder, adicionei o caminho como você mencionou, mas ainda estou recebendo
#import <OneSignal/OneSignal.h> arquivo não encontrado.
estou a usar

"reagir-nativo": "0,36,1",
"react-native-onesignal": "2.0.0",

@gplopes e adicionou o OneSignal.framework ao projeto?

se você fizesse bem, você veria a biblioteca vinculada

image

@eriksape , sim, aqui estão as imagens do xcode.

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

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

Eu testei com reagente nativo 0,39, mas com o "react-nativo-sinalizador": "^ 1.2.3"

como vejo, o 1.2.3 funciona bem com o reativo nativo 0,36

@gplopes Eu adicionei sua sugestão aos documentos, isso deve resolver o problema.
Em qualquer caso, recomendo a todos vocês que atualizem para 3.0.0 .

Obrigado!

Claro, se você estiver usando RN até 0,39, use v2.

@gplopes Você já fez funcionar? Estou tendo o mesmo problema, com RN = 0,39, v2.0.0 desta lib, e segui todas as sugestões sobre "Linked Frameworks and Libraries" e caminhos de pesquisa.

Você pode fornecer um repo que eu possa testar?

Tentei reproduzir isso em um repositório mínimo e encontrei outro erro (# 139). Talvez você possa criar um fork de https://github.com/GeoffreyPlitt/react_native_minimal e nos mostrar uma versão que funcione? Caso contrário, reproduzirei isso assim que passar pelo outro erro.

Nota: Sem cocoapods.

Como eu disse antes, sem cocoapods com v1.2.3 funciona bem.
Eu não sei porque ele precisa de cocoapods

Vou usar a v3 depois que as dependências em meu projeto puderem usar o react-native 0,40

Cortei um novo branch desse projeto mínimo e mudei para 1.2.3 desta biblioteca: https://github.com/GeoffreyPlitt/react_native_minimal/tree/onesignal_123

Ainda recebo o seguinte erro, você obteve o mesmo erro ou ele está funcionando corretamente?

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

Tudo bem com todo o projeto, sem erros, farei upload de um exemplo dele

@eriksape, você pode fazer um PR para atualizar os documentos para usar a biblioteca sem CocoaPods? Eu vou agradecer.

@avishayil Ok, enviarei um PR hoje ou amanhã, qual versão do OneSignal para ios você está usando? parece que OneSignal.framework tem arquivos ausentes, testei com o 3.0.0 agora.

Sim, percebi que faltam arquivos de cabeçalho em OneSignal.framework, o que pode ser a causa raiz deste problema

Atualização: @eriksape foi bom o suficiente para bifurcar, consertar e me enviar um PR, e este branch agora funciona com 1.2.3:

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

No entanto, quando comecei a usar essa correção, percebi que nenhuma das minhas notificações estava passando, com o relatório do servidor:

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

E esse ID aí é o mesmo que essa biblioteca fornece para mim.

Eu perguntei ao suporte da OneSignal sobre esse erro, e eles disseram:
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.

Nenhuma dessas coisas é correta para mim, então, investigando mais a fundo, o apoio deles disse:

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

O que significa: usar a v1.2.3 me permite construir no iOS, mas ainda não permite que as notificações funcionem. Portanto, estou ansioso para aguardar as correções de compilação v2.0.0 (com os arquivos de cabeçalho ausentes) para continuar.

=====> Alguém pode reabrir este problema? Já que temos mais trabalho a fazer? Ou devo criar um novo?

em seu android / ios JS você precisa criar a configuração para o onesignal

algo assim está nos documentos deste repo

@eriksape Já estou fazendo Onesignal.configure () com sucesso, e ele está me enviando um userId que parece correto.

mas no https://github.com/GeoffreyPlitt/react_native_minimal/tree/onesignal_123 não consigo te ver fazendo o configure. Também como eu sei que quando o ID é inválido você precisa gerar um novo ID.

Oh sim, desculpe confundi-lo-- Eu estava usando aquele repositório para corrigir problemas de compilação, eu tenho outro projeto (privado) onde estou realmente usando essas coisas.

Quando o ID é inválido, como você gera um novo ID? Lembre-se de que não salvei este ID em nenhum lugar, não estou usando um antigo. Estou usando aquele que foi gerado no carregamento do aplicativo mais recente, quando chamei configure ().

Se necessário, adicionarei a etapa de configuração a esse repo para mostrar a você

ei @GeoffreyPlitt , estou voltando aqui, mas vejo que a conversa já está no próximo nível. Infelizmente não tive tempo de tentar novamente. Espero que vocês possam descobrir isso.

@GeoffreyPlitt você está certo sobre 1.2.3 ele não registra o token push para um sinal, seria melhor tentar com 2.0.0 desta lib com o OneSingnal.framework desta versão https://github.com/ OneSignal / OneSignal-iOS-SDK / archive / 2.3.5.zip

eu espero que dê certo

Sim pessoal mesmos passos com a versão 2.0.0
screen shot 2017-01-20 at 9 42 43 am

Desculpe, eu testei o 1.2.3 em um simulador quando percebi o que @GeoffreyPlitt mencionou que ele apenas compila OK, use 2.0.0 em vez

Qual é o problema aqui? ou há muitos problemas juntos na conversa? De qualquer forma, aqui está minha solução para o título desse problema:
https://github.com/geektimecoil/react-native-onesignal/issues/152#issuecomment -274124225

Eu criei um novo problema, # 153, que captura o trabalho restante para consertar isso.

@avishayil obrigado por essa solução alternativa, mas estou preocupado que isso torne a atualização mais difícil para mim no futuro. Espero que possamos consertar isso corretamente para que tudo funcione imediatamente.

@GeoffreyPlitt onde você colocou o OneSignal.framework? observe que com $(SRCROOT)/../node_modules/react-native-onesignal ele precisa estar dentro da rota de sinal reativo-nativo

@avishayil o problema com o 2.0.0 é o mesmo resolvido na solicitação de pull com o 3.0.0

@eriksape Não tenho certeza do que você está perguntando, não estou colocando o framework em lugar nenhum. Eu executo "yarn install" e a estrutura aparece nos módulos de nó.

Depois de instalar a v2.0.0, vou para node_modules / react-native-onesignal e procuro por mim mesmo:

$ 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

Realmente não há nenhum lugar onde exista "OneSignal / OneSignal.h". O arquivo "OneSignal.h" existe, mas não em uma pasta chamada "OneSignal". Se pudermos corrigir esse caminho e superar esse erro de compilação, meus problemas serão resolvidos.

o OneSignal.framework é o mesmo que está aqui?

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

@eriksape não sei?

Este é um repositório público mínimo que reproduz o erro de compilação: https://github.com/GeoffreyPlitt/react_native_minimal/tree/onesignal

Alguém conseguiu resolver este problema? enfrentando o mesmo problema. React 0.40.0 + OneSignal 3.0

Ok, resolvi meu problema, essa é uma solução temporária. Existem alguns links simbólicos em OneSignal.framework .
onesignal

Quando executamos npm install esses diretórios estão faltando. Baixá-los do projeto e adicioná-los manualmente corrige o problema . Isso não é o ideal, espero que economize horas de trabalho para as pessoas.

Obrigado. Isso realmente não nos ajuda porque nossos builds passam por um sistema de CI e temos scripts que fazem check-outs atualizados. Estou ansioso para consertar isso!

Ei @haxtrujillo, posso pedir que esclareça um pouco? Quero dizer, de onde você baixa esses links simbólicos? O primeiro link que você fornece para OneSignal.framework não os mostra.
Em segundo lugar, você mostra uma captura de tela, mas não tenho certeza, é a pasta ./node_modules/react-native-onesignal ?

@kelset ,

Abri uma nova edição , tem mais informações e como resolver com cuidado.

Os arquivos de cabeçalho estão no diretório de versões, você deve testar qual versão funciona para o seu projeto.

Esta página foi útil?
0 / 5 - 0 avaliações