Descrição:
Eu atualizei para React-native 0.60 e segui as etapas de instalação de um sinal conforme mostrado aqui: https://documentation.onesignal.com/docs/react-native-sdk-setup
Quando eu executo o aplicativo xcode, recebo um erro relacionado ao OnesignalNotificationExtension.
Erro : ld: library not found for -lPods-OneSignalNotificationServiceExtension
O destino OneSignalNotificationServiceExtension tem as seguintes configurações:
"${PODS_ROOT}/Headers/Public/react-native-onesignal"
"${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"
Meio Ambiente
Etapas para reproduzir o problema:
ld: library not found for -lPods-OneSignalNotificationServiceExtension
Olá,
Lançamos uma nova versão ontem. Você pode atualizar e tentar novamente? Tente também limpar a pasta DerivedData localizada em / Users /
A última coisa a tentar é atualizar o pod de seu diretório ios
@jamesone você resolveu esse problema? A resposta de @rgomezp não ajuda.
@rgomezp nenhuma das sugestões acima funcionou, usando a última versão 3.4.1. Pode ser necessário um pouco de atenção sobre este assunto. Forçado a remover OneSignalNotificationExtension até ser resolvido, fico feliz em tentar outras sugestões / lançamentos.
+1 seguindo!
Olá,
Por favor, tente executar pod deintegrate && pod install
do diretório ios em seu projeto
As sugestões acima não estão funcionando. Já atualizado para a versão mais recente v3.4.1, limpar dados derivados, limpar pods e reinstalar, mas ainda obtendo erro:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_RCTOneSignalExtensionService", referenced from:
objc-class-ref in NotificationService.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Podfile.lock
- react-native-onesignal (3.4.1):
- OneSignal (= 2.11.0)
- React (< 1.0.0, >= 0.13.0)
ATUALIZAR:
Foi mal. Acontece que preciso substituir o conteúdo de NotificationService.m
pelo código mais recente no DOC. Eu ainda estava usando RCTOneSignalExtensionService.h
. Após a atualização, o erro desapareceu.
Que bom ouvir! Comente se você ainda está lutando com esse problema e eu posso reabrir
Ainda está em questão no RN: 0.60.10 com pod.
como usar pod com isso?
Oi,
Eu tenho o mesmo problema ld: library not found for -lPods-OneSignalNotificationServiceExtension
Estou usando o reagente nativo 0,61.4 e o sinal único 3.6.1
com pod desintegrar e limpar e DerivedData
Encontrei, mas não sei por que, quando não tenho uma configuração "Release" na minha lista de configurações, o "arquivo" falha com biblioteca não encontrada.
falha no arquivo:
arquivo com sucesso 👍
Para sua informação, Dev, Preprod & Prod são baseados em Release. Estava funcionando sem "Release" em meus projetos mais antigos com o oneignal
Atualize @rgomezp :
- Crie um novo projeto reac-nativo
- Adicionar um sinal
- construir e arquivar> está tudo bem
- Renomear a configuração "Release" com outro nome (como Dev)
- construir e arquivar> ld: biblioteca não encontrada para -lPods-OneSignalNotificationServiceExtension
As sugestões acima não estão funcionando. Já atualizado para a versão mais recente v3.4.1, limpar dados derivados, limpar pods e reinstalar, mas ainda obtendo erro:
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_RCTOneSignalExtensionService", referenced from: objc-class-ref in NotificationService.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Podfile.lock
- react-native-onesignal (3.4.1): - OneSignal (= 2.11.0) - React (< 1.0.0, >= 0.13.0)
ATUALIZAR:
Foi mal. Acontece que preciso substituir o conteúdo deNotificationService.m
pelo código mais recente no DOC. Eu ainda estava usandoRCTOneSignalExtensionService.h
. Após a atualização, o erro desapareceu.
Isso não está funcionando para mim
Tendo o mesmo problema agora. -lPods-OneSignalNotificationServiceExtension
falhou quando adicionei novos esquemas. Alguma atualização sobre isso?
mesmo
Tive o mesmo problema depois de atualizar o react-native
Isso corrigiu meu problema https://github.com/OneSignal/react-native-onesignal/issues/651#issuecomment -429062289
Tive o mesmo problema ao atualizar a versão RN para 0.63.2 e tentar arquivar o aplicativo e fui corrigido
por este.
Era uma incompatibilidade de versão entre a versão que eu especifiquei no Podfile e a versão de destino que
Eu configurei para a extensão OneSignal. Assim que modifiquei esses dois valores para corresponderem um ao outro,
o problema foi embora.
Podfile
OneSignalNotificationExtension (ou qualquer outro nome que você tenha nomeado para a extensão de notificação)
Eu tenho o mesmo problema, mas nenhuma das dicas acima resolveu meu problema.
Tenho 2 projetos bastante semelhantes: um que funciona e outro que não funciona.
No xcode, as etapas de compilação e arquivamento estão ok, mas no meu CI ou no meu computador o comando abaixo é bem-sucedido em um projeto, mas falha no outro
xcodebuild "-workspace" "/Users/vagrant/git/packages/mobile-pro/ios/WecasaPro.xcworkspace" "-scheme" "WecasaPro" "-configuration" "Staging" "COMPILER_INDEX_STORE_ENABLE=NO" "archive" "-archivePath" "/var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/__archive__581470914/WecasaPro.xcarchive" "-destination" "generic/platform=iOS" | xcpretty
Se eu olhar os logs do comando. Para o projeto que funciona eu tenho
▸ Building Pods/Pods-OneSignalNotificationServiceExtension [Staging]
▸ Check Dependencies
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Building library libPods-OneSignalNotificationServiceExtension.a
▸ Building library libPods-OneSignalNotificationServiceExtension.a
▸ Building WecasaPro/OneSignalNotificationServiceExtension [Staging]
▸ Check Dependencies
▸ Processing Info.plist
▸ Running script '[CP] Check Pods Manifest.lock'
▸ Compiling NotificationService.m
▸ Linking OneSignalNotificationServiceExtension
▸ Generating 'OneSignalNotificationServiceExtension.appex.dSYM'
▸ Touching OneSignalNotificationServiceExtension.appex
▸ Signing /Users/vagrant/Library/Developer/Xcode/DerivedData/WecasaPro-fuytaarwfdjqjucxpzvnzgjrhcvd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OneSignalNotificationServiceExtension.appex
▸ Touching OneSignalNotificationServiceExtension.appex.dSYM
Para o projeto que não funciona eu tenho
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Running script 'Copy generated compatibility header'
▸ Building library libPods-OneSignalNotificationServiceExtension.a
Verifiquei a configuração de ambos os projetos várias vezes e eles parecem ser semelhantes.
Alguém tem idéia do que pode causar isso?
Depois de comparar meus logs para os dois projetos, descobri que o que teve sucesso usa o sistema de compilação legado, mas o outro usa o novo sistema de compilação.
Mudei o projeto para um sistema de construção legado, mas o problema ainda está lá.
No projeto que dá certo, eu tenho
CompileC /Users/scesbron/Library/Developer/Xcode/DerivedData/WecasaPro-guwmidkqvxjubvhfovvxnfhourjd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/Pods.build/Staging-iphoneos/Pods-OneSignalNotificationServiceExtension.build/Objects-normal/arm64/Pods-OneSignalNotificationServiceExtension-dummy.o Target\ Support\ Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension-dummy.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
e depois
Libtool /Users/scesbron/Library/Developer/Xcode/DerivedData/WecasaPro-guwmidkqvxjubvhfovvxnfhourjd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/Pods.build/Staging-iphoneos/Pods-OneSignalNotificationServiceExtension.build/Objects-normal/armv7/libPods-OneSignalNotificationServiceExtension.a normal armv7
mas no outro projeto após a compilação eu tenho um comando Ld
Ld /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/OneSignalNotificationServiceExtension normal armv7
Não sei qual é a diferença entre esses comandos e não sei porque a sequência não é a mesma
Último comentário sobre meu problema. Removi o destino OneSignalNotificationServiceExtension, os arquivos objetivos-c relacionados e a referência a OneSignal em meu podfile. O comando xcodebuild
bem-sucedido.
Eu adicionei de volta um sinal executando todas as etapas descritas no documento https://documentation.onesignal.com/docs/react-native-sdk-setup
Depois disso, meu comando xcodebuild
ainda falha em
Ld /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/Binary/OneSignalNotificationServiceExtension` normal armv7
a pasta /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/Binary
está vazia, não contém um arquivo OneSignalNotificationServiceExtension
.
Eu tenho o mesmo problema
Então...
Este foi realmente difícil de rastrear, eu tive que recriar um novo projeto RN 064.1 para realmente encontrar a solução para meus problemas. Estou usando esquemas em meus projetos e aplicando correções para que ele seja compilado corretamente no M1.
Como o projeto foi atualizado para usar o novo OneSignalXCFramework
vez do antigo framework fat, decidi atualizar o NSE para usá-lo também no Podfile.
Estava enfrentando muitos problemas onde o módulo não foi encontrado, incluindo este durante a construção de uma versão de lançamento ou construção para o simulador ou um dispositivo
Acontece que a parte que estava atrapalhando meu código e fazendo com que todo o problema não funcionasse é esta seção no Podfile
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[iphonesimulator=*]"] = "arm64"
end
No final, eu tive que aplicá-lo apenas para depurar compilações e não liberar compilações. Não sou um desenvolvedor iOS, então não sei os detalhes sobre como excluir um simulador de uma arquitetura faria com que os pods não fossem detectados para o NSE, mas esse era o meu problema.
Remover o bloco inteiro foi o que consertou para mim. Parece que não é mais necessário para o meu projeto, pelo menos.
Comentários muito úteis
Tive o mesmo problema ao atualizar a versão RN para 0.63.2 e tentar arquivar o aplicativo e fui corrigido
por este.
Era uma incompatibilidade de versão entre a versão que eu especifiquei no Podfile e a versão de destino que
Eu configurei para a extensão OneSignal. Assim que modifiquei esses dois valores para corresponderem um ao outro,
o problema foi embora.
Podfile
OneSignalNotificationExtension (ou qualquer outro nome que você tenha nomeado para a extensão de notificação)