React-native-onesignal: React-native 0.60 -lPods-OneSignalNotificationExtension no encontrada

Creado en 2 sept. 2019  ·  20Comentarios  ·  Fuente: OneSignal/react-native-onesignal

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:

  • Rutas de búsqueda de encabezado: "${PODS_ROOT}/Headers/Public/react-native-onesignal"
  • Rutas de búsqueda del marco: "${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"

Ambiente

  • react-native-onesignal versión: 3.3.2
  • react-native: 0.60.5

Pasos para reproducir el problema:

  1. Siguió la configuración de RN: https://documentation.onesignal.com/docs/react-native-sdk-setup
  2. Ejecutar proyecto xcode
  3. Espere ver: ld: library not found for -lPods-OneSignalNotificationServiceExtension
Help Wanted

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
image

OneSignalNotificationExtension (o lo que sea que haya nombrado en la extensión de notificación)
image

Todos 20 comentarios

Hola,
Ayer lanzamos una nueva versión. ¿Puedes actualizar y volver a intentarlo? También intente borrar su carpeta DerivedData ubicada en / Users // Biblioteca / Desarrollador / Xcode / DerivedData

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:
Capture d’écran 2020-01-08 à 17 07 06

archivo exitoso 👍
Capture d’écran 2020-01-08 à 17 16 44

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 de NotificationService.m con el último código en DOC. Todavía estaba usando RCTOneSignalExtensionService.h . Al actualizar, el error desaparece.

Esto no funciona para mi

  • una señal (3.6.2)
  • react-nativo (0.60.0)

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
image

OneSignalNotificationExtension (o lo que sea que haya nombrado en la extensión de notificación)
image

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.

¿Fue útil esta página
0 / 5 - 0 calificaciones