Descripción:
Actualicé a React-native 0.60 y seguí los pasos de instalación de oneignal como se muestra aquí: https://documentation.onesignal.com/docs/react-native-sdk-setup
Cuando voy a ejecutar la aplicación xcode, aparece un error relacionado con OnesignalNotificationExtension.
Error : ld: library not found for -lPods-OneSignalNotificationServiceExtension
El destino OneSignalNotificationServiceExtension tiene la siguiente configuración:
"${PODS_ROOT}/Headers/Public/react-native-onesignal"
"${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"
Ambiente
Pasos para reproducir el problema:
ld: library not found for -lPods-OneSignalNotificationServiceExtension
Hola,
Ayer lanzamos una nueva versión. ¿Puedes actualizar y volver a intentarlo? También intente borrar su carpeta DerivedData ubicada en / Users /
Lo último que puede intentar es actualizar el pod desde su directorio ios
@jamesone, ¿ @rgomezp no ayuda.
@rgomezp ninguna de las sugerencias anteriores funcionó, usando la última versión 3.4.1. Le vendría bien un poco de atención sobre este tema. Obligado a eliminar OneSignalNotificationExtension hasta que se resuelva, feliz de probar otras sugerencias / lanzamientos.
+1 siguiendo!
Hola,
Intente ejecutar pod deintegrate && pod install
desde el directorio ios en su proyecto
Las sugerencias anteriores no funcionan. Ya actualizado a la última versión v3.4.1, limpie los datos derivados, limpie los pods y vuelva a instalar, pero sigue recibiendo el error:
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)
ACTUALIZAR:
Mi error. Resulta que necesito reemplazar el contenido de NotificationService.m
con el último código en DOC. Todavía estaba usando RCTOneSignalExtensionService.h
. Al actualizar, el error desaparece.
¡Me alegro de oirlo! Por favor comente si todavía tiene problemas con este problema y puedo reabrir
Sigue siendo un problema en RN: 0.60.10 con pod.
¿cómo usar la vaina con él?
Hola,
Tengo el mismo problema ld: library not found for -lPods-OneSignalNotificationServiceExtension
Estoy usando react-native 0.61.4 y onesignal 3.6.1
con vaina deintegrar y limpiar y DerivedData
Lo encontré, pero no sé por qué, cuando no tengo una configuración de "Versión" en mi lista de configuraciones, el "archivo" falla con la biblioteca no encontrada.
error de archivo:
archivo exitoso 👍
Para su información, Dev, Preprod y Prod se basan en Release. Estaba funcionando sin "Release" en mis proyectos antiguos con oneignal
Actualizar @rgomezp :
- Crea un nuevo proyecto react-native
- Agregar una señal
- compilar y archivar> está bien
- Cambiar el nombre de la configuración de "Versión" a otro nombre (como Dev)
- build & archive> ld: biblioteca no encontrada para -lPods-OneSignalNotificationServiceExtension
Las sugerencias anteriores no funcionan. Ya actualizado a la última versión v3.4.1, limpie los datos derivados, limpie los pods y vuelva a instalar, pero sigue recibiendo el error:
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)
ACTUALIZAR:
Mi error. Resulta que necesito reemplazar el contenido deNotificationService.m
con el último código en DOC. Todavía estaba usandoRCTOneSignalExtensionService.h
. Al actualizar, el error desaparece.
Esto no funciona para mi
Tengo el mismo problema ahora mismo. -lPods-OneSignalNotificationServiceExtension
falló cuando agregué nuevos esquemas. ¿Alguna actualización sobre eso?
mismo
Tuve el mismo problema después de actualizar react-native
Esto solucionó mi problema https://github.com/OneSignal/react-native-onesignal/issues/651#issuecomment -429062289
Tuve el mismo problema al actualizar la versión RN a 0.63.2 e intentar archivar la aplicación y lo solucioné
por esto.
Fue una discrepancia de versión entre la versión que especifiqué en Podfile y la versión de Target que
Configuré la extensión OneSignal. Tan pronto como modifiqué esos dos valores para que coincidan entre sí,
el problema se había ido.
Podfile
OneSignalNotificationExtension (o lo que sea que haya nombrado en la extensión de notificación)
Tengo el mismo problema, pero ninguno de los consejos anteriores resolvió mi problema.
Tengo 2 proyectos que son bastante similares: uno que funciona y otro que no funciona.
En xcode, los pasos de compilación y archivo están bien, pero en mi CI o en mi computadora, el comando a continuación tiene éxito en un proyecto pero falla en el otro
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
Si miro los registros del comando. Para el proyecto que funciona tengo
▸ 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 el proyecto que no funciona tengo
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Running script 'Copy generated compatibility header'
▸ Building library libPods-OneSignalNotificationServiceExtension.a
Revisé la configuración de ambos proyectos varias veces y parecen ser similares.
¿Alguien tiene idea de qué puede causar esto?
Después de comparar mis registros para los dos proyectos, descubrí que el que tiene éxito usa el sistema de compilación heredado, pero el otro usa el nuevo sistema de compilación.
Cambié el proyecto al sistema de compilación heredado, pero el problema sigue ahí.
En el proyecto que tiene éxito tengo
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
y entonces
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
pero en el otro proyecto después de la compilación tengo un 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
No sé cuál es la diferencia entre estos comandos y no sé por qué la secuencia no es la misma
Último comentario sobre mi problema. Eliminé el destino OneSignalNotificationServiceExtension, los archivos objetivo-c relacionados y la referencia a OneSignal en mi podfile. El comando xcodebuild
tiene éxito.
He vuelto a agregar una señal siguiendo todos los pasos descritos en el documento https://documentation.onesignal.com/docs/react-native-sdk-setup
Después de eso, mi comando xcodebuild
aún falla en
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
la carpeta /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á vacía, no contiene un archivo OneSignalNotificationServiceExtension
.
Tengo el mismo problema
Entonces...
Este fue realmente difícil de rastrear, tuve que recrear un nuevo proyecto RN 064.1 para encontrar realmente la solución a mis problemas. Estoy usando esquemas en mis proyectos y estaba aplicando correcciones para que se construya correctamente en M1.
Dado que el proyecto se ha actualizado para usar el nuevo OneSignalXCFramework
lugar del antiguo marco fat, decidí actualizar el NSE para usarlo también en Podfile.
Se enfrentaba a un montón de problemas en los que no se encontraba el módulo, incluido este durante la compilación de una versión de lanzamiento o la compilación del simulador o un dispositivo
Resulta que la parte que estaba arruinando mi código y causando que todo el problema no funcionara es la siguiente sección en el Podfile
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[iphonesimulator=*]"] = "arm64"
end
Al final, solo tuve que aplicarlo para depurar compilaciones y no para lanzar compilaciones. No soy un desarrollador de iOS, por lo que no conozco las complejidades de cómo excluir un simulador de una arquitectura haría que los pods no se detectaran para el NSE, pero ese era mi problema.
Quitar todo el bloque fue lo que lo arregló para mí. Parece que ya no es necesario para mi proyecto al menos.
Comentario más útil
Tuve el mismo problema al actualizar la versión RN a 0.63.2 e intentar archivar la aplicación y lo solucioné
por esto.
Fue una discrepancia de versión entre la versión que especifiqué en Podfile y la versión de Target que
Configuré la extensión OneSignal. Tan pronto como modifiqué esos dos valores para que coincidan entre sí,
el problema se había ido.
Podfile
OneSignalNotificationExtension (o lo que sea que haya nombrado en la extensión de notificación)