React-native-onesignal: 101 símbolos duplicados para arquitetura x86_64

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

O comando do linker falhou com o código de saída 1

Comentários muito úteis

Para os dois, você está usando CocoaPods?
Porque, na verdade, o erro inicial ocorre quando você está usando Cocoapods, já que para a versão 3.0.3 do react-native-onesignal, eles pararam de usar os frutos do cacau.
Você estava recebendo o erro duplicado porque tinha a versão cocoapods do onesignal + 3.0.3 do react onesignal nativo que agora integra os mesmos arquivos Sdk (eles estão duplicados).
Ou você permanece na versão 3.0.3 sem cocoapods ou vai para a 3.0.2 usando cocoapods

Para mim, entender isso me permitiu resolver os mesmos problemas ...

Todos 16 comentários

Em seu package.json, copie aqui a linha referente ao react-native-onesignal, por favor

Estou tendo um problema semelhante:

23 símbolos duplicados para arquitetura arm64

Package.json:

"react-native-onesignal": "^ 3.0.3",

Exclua sua pasta npm-modules.
Então, mude em seu package.json para colocar "react-native-onesignal": "3.0.2",
Execute npm install
E tente construir novamente no Xcode. Avise-me se mudar alguma coisa!

Segui seu conselho e agora estou conseguindo:

Símbolos indefinidos para arquitetura arm64:
"_OBJC_CLASS _ $ _ RCTOneSignal", referenciado de:
objc-class-ref em AppDelegate.o
ld: símbolo (s) não encontrado (s) para arquitetura arm64
clang: erro: o comando do linker falhou com o código de saída 1 (use -v para ver a chamada)

Depois de executar novamente react-native link react-native-onesignal , estou recebendo uma tonelada de erros:

image

@Pampounet

Aqui está meu package.json
"reagir": "15.4.2",
"reagir nativo": "0,40,0",
"react-native-android-location-services-dialog-box": "^ 1.2.0",
"react-native-checkbox": "^ 1.1.0",
"react-native-code-push": "^ 1.17.0-beta",
"react-native-country-picker-modal": "^ 0.2.10",
"react-native-drawer": "^ 2.3.0",
"react-native-easy-grid": "0.1.8",
"react-native-fbsdk": "^ 0.5.0",
"react-native-keyboard-aware-scroll-view": "0.2.7",
"react-native-maps": "^ 0.13.0",
"react-native-modalbox": "^ 1.3.9",
"react-native-onesignal": "^ 3.0.3".

Para os dois, você está usando CocoaPods?
Porque, na verdade, o erro inicial ocorre quando você está usando Cocoapods, já que para a versão 3.0.3 do react-native-onesignal, eles pararam de usar os frutos do cacau.
Você estava recebendo o erro duplicado porque tinha a versão cocoapods do onesignal + 3.0.3 do react onesignal nativo que agora integra os mesmos arquivos Sdk (eles estão duplicados).
Ou você permanece na versão 3.0.3 sem cocoapods ou vai para a 3.0.2 usando cocoapods

Para mim, entender isso me permitiu resolver os mesmos problemas ...

@superquest o que você pode fazer é instalar oneSignal usando pods e, em seguida, obter o arquivo de estrutura oneSignal. Em seguida, exclua os pods e vincule manualmente a estrutura do onesignal ao seu projeto, juntamente com o libonesignal. que não mostrará nenhum problema. Eu fiz da mesma maneira. Mas não testei para notificação no celular. Uma vez que farei isso. Vou atualizar aqui.

Tentei fazer o downgrade para 3.0.2 e agora vejo o mesmo que @superquest , captura de tela .

Vou tentar @GeekRishabh mais recente agora ...

Edit: Ainda não consegui funcionar, avisarei quando / se sim ... 😬

Está funcionando! Aqui está o que fizemos:

  1. Removido react-native-onesignal das dependências
  2. Excluída a pasta de apps node_modules .
  3. Cocoapods-deintegrate instalado e executado no projeto. (Isso pode não se aplicar a todos; no entanto, em nosso caso, o único motivo de termos pods neste projeto foi o sinal único).
  4. Executei o processo de instalação novamente, certificando-se de atualizar todas as importações para < X > (estávamos atualizando de cerca de v0.20 de rn para 0,42 😅)
  5. Projeto limpo, feche / reinicie o xCode.
  6. ????
  7. LUCRO!!!

@Pampounet - sua solução funcionou para mim.

Tenho outros pods instalados, então aqui está o que fiz para remover o pod OneSignal de forma limpa:

  1. sudo gem install cocoapods-deintegrate
  2. sudo gem install cocoapods-clean
  3. do diretório ios dentro do projeto, execute pod deintegrate
  4. pod clean
  5. exclua a linha pod 'OneSignal' do seu podfile
  6. execute pod install
  7. presumindo que você seguiu todas as outras instruções de instalação e configuração na versão mais recente do OneSignal (3.0.3 para mim), executar o build novamente deve funcionar e você terá mantido seus outros pods existentes (situação ligeiramente diferente de @breadadams)

Como @Pampounet observou, ir para 3.0.3 requer que você remova o OneSignal do Cocoapods, bem como siga as novas instruções de configuração do iOS.
https://github.com/geektimecoil/react-native-onesignal#ios -installation

@GeekRishabh @avishayil Acho que podemos encerrar esse problema agora.

A parte do projeto Running Example do README.md não menciona esta parte, desperdiçou algumas horas nela. Seria útil também atualizar a documentação sobre como executá-lo?

Olá,

Estou passando pelo mesmo problema

ld: 233 duplicate symbols for architecture x86_64

Eu estava compilando com o 3.0.2 e passei para o último 3.2.3, me livrando dos cocoapods conforme explicado neste tópico. Verifiquei novamente todos os arquivos relacionados ao pod e todos eles sumiram. Basicamente, eu obtenho o seguinte para vários arquivos

duplicate symbol _OBJC_METACLASS_$_OSRequestSubmitNotificationOpened in: /[...]/ios/OneSignal.framework/OneSignal(Requests.o) /[...]/Library/Developer/Xcode/DerivedData/[AppName]-fmxhrnwitpecshtmi/Build/Products/Debug-iphonesimulator/libRCTOneSignal.a(Requests.o)

Também tentei remover tudo da Biblioteca / ... mas o erro continua aparecendo.

Agradecemos antecipadamente por qualquer ajuda

@grafosecondo, isso significa que de alguma forma o SDK OneSignal nativo está sendo duplicado em seu projeto. Eu sugeriria executar pod deintegrate , em seguida, seguir o guia de configuração atual para instalar o OneSignal por meio do npm (após a vinculação, você verá um subprojeto RCTOneSignal Xcode).

De alguma forma, OneSignal.framework ainda está em seu projeto e está causando este problema.

@ Nightsd01

De alguma forma, OneSignal.framework ainda está em seu projeto e está causando esse problema.

isso salvou meu dia, obrigado!

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