React-native-onesignal: símbolo (s) não encontrado (s) para arquitetura x86_64

Criado em 14 abr. 2016  ·  25Comentários  ·  Fonte: OneSignal/react-native-onesignal

Ei,

Estou tendo um problema ao importar isso para um projeto RN (migrando do Parse!).

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_OneSignal", referenced from:
      objc-class-ref in libRCTOneSignal.a(RCTOneSignal.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

É muito semelhante a https://github.com/geektimecoil/react-native-onesignal/issues/5, embora tenha uma arquitetura diferente.

Não estou familiarizado com ObjectiveC, mas fico feliz em ajudar onde posso e irei emitir relações públicas se puder ser orientado conforme necessário. Espero que alguém possa me ajudar!

Obrigado
Ollie

Comentários muito úteis

Eu tive exatamente o mesmo problema que @olliebrennan , resolvido por:

  1. arraste a pasta node_modules/react-native-onesignal/ios/Frameworks para RCTOneSignal.xcodeproj no painel esquerdo do XCode
  2. uma vez no painel esquerdo, arraste OneSignal.framework para Vincular binário com bibliotecas

Todos 25 comentários

@olliebrennan você conseguiu resolver esse problema? Estou examinando o commit do nº 5 para descobrir o que fazer. Sou um JS dev, não um iOS dev, então não estou familiarizado com as várias configurações.

Talvez @ jkasten2 possa ajudar aqui?

@jamiemchale eu não fiz. Tive o mesmo problema que você, então deixei meu aplicativo usando o Parse até que uma correção apareça. Fico feliz em ajudar, mas, como você disse, também não estou familiarizado com o idioma / configurações do iOS.

@olliebrennan @avishayil
Se você instalou o plug-in OneSignal com pods Cocoa, ele pode não fazer referência à estrutura nativa OneSignal para o projeto principal. Você pode soltar e arrastar OneSignal.framework do Finder para o XCode, o que deve corrigir o erro do vinculador. Você pode ter que selecionar "Copiar itens se necessário" se não funcionar sem.

image

image

Por último, certifique-se de usar o Xcode 7.0 ou superior, pois as versões anteriores do Xcode resultarão exatamente no mesmo erro aqui.

Obrigado @ jkasten2
Tenho um lançamento nos próximos dias, então tentarei fazer isso e apresentarei um relatório.

Saúde

+1 tendo um problema semelhante no OSX

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_OneSignal", referenced from:
      objc-class-ref in libRCTOneSignal.a(RCTOneSignal.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Eu estava perdendo OneSignal.framework . Tentei arrastar appname/node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework para as bibliotecas do XCode. Ainda não funciona.

Também tentei appname/ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework mas também não funcionou.

@olliebrennan Você conseguiu resolver o problema?

Eu tive exatamente o mesmo problema que @olliebrennan , resolvido por:

  1. arraste a pasta node_modules/react-native-onesignal/ios/Frameworks para RCTOneSignal.xcodeproj no painel esquerdo do XCode
  2. uma vez no painel esquerdo, arraste OneSignal.framework para Vincular binário com bibliotecas

Ei @hyperh @olliebrennan você conseguiu resolver isso?

@avishayil Não consegui resolver isso. Decidi ir com o apnagent para lidar com meu material APN.

Se alguém encontrar o mesmo erro, informe. Estou encerrando esse problema por enquanto.

@avishayil eu tenho esse problema. Tentei seguir as instruções de @whollacsek , mas continuo recebendo o mesmo erro no XCode.

screenshot 2016-06-03 15 40 31

Mesmo problema que @ chrissm79 e outros

Acabei de chegar aqui e sim, mesmo problema.

+1

Olhando para isso. Qualquer etapa de reprodução?

Eu experimentei esse problema e fui capaz de corrigi-lo clicando e arrastando ios / Pods / OneSignal / iOS_SDK / Framework / OneSignal.framework do Finder para a pasta Frameworks do meu projeto XCode.

Exatamente o mesmo problema que

Editar: resolvido baixando a estrutura e vinculando-a a partir do link documentado, em vez de usar a estrutura na pasta node_modules.

Você tem o projeto de exemplo para fazer referência e brincar, por favor, certifique-se
você está seguindo todos os pedidos, nenhum erro deve ocorrer.
Em 2 de julho de 2016, às 12h37, "Charles Hulcher" [email protected] escreveu:

Exatamente o mesmo problema que https://github.com/chrissm79

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/geektimecoil/react-native-onesignal/issues/18#issuecomment -230052711,
ou silenciar o tópico
https://github.com/notifications/unsubscribe/AAyekNTkU15t6IP4zvQzg06yXzUf0akHks5qRYiBgaJpZM4IHVBS
.

Eu também tenho esse problema, mas não sei como resolvê-lo

ld: aviso: ignorando o arquivo /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd, faltando a arquitetura necessária x86_64 no arquivo /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd (3 fatias)
Símbolos indefinidos para arquitetura x86_64:
"_OBJC_CLASS _ $ _ XCTestCase", referenciado de:
_OBJC_CLASS _ $ __ TtC6Camera11toucanTests in toucanTests.o
"_OBJC_METACLASS _ $ _ XCTestCase", referenciado de:
_OBJC_METACLASS _ $ __ TtC6Camera11toucanTests in toucanTests.o
ld: símbolo (s) não encontrado (s) para arquitetura x86_64
clang: erro: o comando do linker falhou com o código de saída 1 (use -v para ver a chamada)

Estou no react-native 0.37 e aqui está como eu consegui fazer isso funcionar (acho que os readmes / documentação estão um pouco atrás do react native).

  1. em um galho limpo sem nenhum sinal de trabalho ...
  2. executar npm install react-native-onesignal --save
  3. execute react-native link
  4. para iOS, siga as instruções do podfile (certifique-se de seguir a nota de versão nativa reagir com atenção)
  5. para iOS siga as adições de código nas instruções
  6. para o Android, siga as instruções do Android (a maior parte do código deve estar presente no comando link, mas verifique tudo novamente)
  7. para Android, certifique-se de usar import com.geektime.reactnativeonesignal.ReactNativeOneSignalPackage; e NÃO import com.geektime.rnonesignal.ReactNativeOneSignalPackage; (alguma documentação antiga tinha o sinal de confirmação e foi atualizada desde então)
  8. em seguida, conclua a configuração e configuração e todos os arquivos
  9. espero que isso resolva o problema para você ... responda se tiver algum problema, pois passei algum tempo no Android e no iOS em alguns branches para fazer isso funcionar.

YMMV se você estiver usando algo inferior a v0.37 do RN. boa sorte.

Problema resolvido!!

Apenas no navegador do projeto, vá para a seção Pods, encontre oneSignal.framework e arraste-o para o 'Link Binário com bibliotecas' localizado em seu destino e pronto !. Então, basicamente, é melhor usar apenas a estrutura em vez do arquivo pod.

No meu caso, tive que adicionar a seguinte linha em podfile e executar pod install novamente. Em seguida, execute Clean e construa novamente.
pod 'react-native-onesignal',: path => '../node_modules/react-native-onesignal'

No meu caso, rodando um projeto React Native 0.39.0 mais antigo, tive que react-native link , Clean build e então Build o projeto novamente.

no meu caso, libRCTOneSignal.a estava faltando na biblioteca de links com o binário que acabei de adicionar e o problema foi resolvido

você pode seguir a segunda etapa aqui https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual -linking

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