React-native-onesignal: OneSignalNotificationServiceExtension provoca problemas de compilación de aplicaciones compartidas

Creado en 10 sept. 2019  ·  12Comentarios  ·  Fuente: OneSignal/react-native-onesignal

Descripción:
Agregar el objetivo OneSignalNotificationServiceExtension hace que mi aplicación no pueda compilarse, debido a que no puedo usar ciertas cosas en las extensiones de la aplicación ... en este caso, el error es específicamente sobre sharedApplication (en realidad aparece como un problema en RCTRedBox.m) . La aplicación se construye bien, incluso con react-native-onesignal, hasta que agrego la extensión.

Medio ambiente
react-native-onesignal: 3.3.3
react-nativo: 0.59.9

SDK agregado a través de hilo, luego react-native link react-native-onesignal

Pasos para reproducir el problema:

No he tenido tiempo de intentar reproducir en una aplicación que no sea la mía ... En mi aplicación (¿así que presumiblemente otras?):

Instalar SDK a través de hilo
Paquete de enlaces
instalación de pod
Agregue la extensión siguiendo las instrucciones de https://documentation.onesignal.com/docs/react-native-sdk-setup#section -usage
Intenta construir

Algo más:

Todo en la descripción

Need More Information

Comentario más útil

Pasé por este mismo problema exacto y, como lo hizo

Este problema surge cuando agrega el objetivo del servicio dentro del objetivo de su aplicación.

Esto está mal:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
  target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
  end
end

Esto es correcto:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
 end
 target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
 end

Este fragmento debe ser su propio objetivo de nivel superior y no un objetivo secundario de su aplicación.

Una vez corregido, simplemente ejecute pod install nuevamente.

Todos 12 comentarios

¿Podría incluir el error completo? ¿O una captura de pantalla?

Actualización: hemos lanzado la versión 3.4.0 que debería solucionar este problema. Si no es así, por favor comente y reabriré. Salud

Hola, @rgomezp . Tengo este error con 3.4.1 en este momento.

node_modules / react-native / React / DevSupport / RCTDevLoadingView.m: 77: 42: 'sharedApplication' no está disponible: no está disponible en iOS (extensión de la aplicación) - Use soluciones basadas en el controlador de vista cuando corresponda.

No estoy seguro si esto se aplica a su biblioteca, pero le informaré

Entonces.

  1. El proyecto sin OneSignalNotificationServiceExtension se ha construido correctamente.
  2. Se agregó OneSignalNotificationServiceExtension con contenido por defecto (sin importaciones de Onesignal)
  3. Se agregó Onesignal a podfile:
target 'OneSignalNotificationServiceExtension' do
  pod 'OneSignal', '>= 2.9.3', '< 3.0'
end

y lanzó pod install

  1. Luego, al intentar construir el proyecto, recibiremos:

node_modules / react-native / React / DevSupport / RCTDevLoadingView.m: 77: 42: 'sharedApplication' no está disponible: no está disponible en iOS (extensión de la aplicación) - Use soluciones basadas en el controlador de vista cuando corresponda.

System:
    OS: macOS 10.14.6
    CPU: (6) x64 Intel(R) Core(TM) i5-8500B CPU @ 3.00GHz
    Memory: 11.75 GB / 32.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 10.16.1 - ~/.nvm/versions/node/v10.16.1/bin/node
    Yarn: 1.17.3 - /usr/local/bin/yarn
    npm: 6.9.0 - ~/.nvm/versions/node/v10.16.1/bin/npm
  SDKs:
    iOS SDK:
      Platforms: iOS 13.0, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
    Android SDK:
      API Levels: 23, 25, 27, 28, 29
      Build Tools: 25.0.2, 25.0.3, 28.0.3, 29.0.1, 29.0.2
      System Images: android-28 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.5791312
    Xcode: 11.0/11A419c - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6
    react-native: 0.60.5 => 0.60.5

@indapublic ,
Eche un vistazo a este desbordamiento de pila que puede ayudar. Si alguna de las soluciones propuestas funciona para usted, comente aquí para que podamos cerrar el ticket y ayudar a cualquier otra persona que pueda tener el problema:
https://stackoverflow.com/questions/34225213/uiapplication-sharedapplication-not-available
o
https://stackoverflow.com/questions/32031071/error-sharedapplication-is-unavailable-not-available-on-ios-app-extension

Gracias, @rgomezp. Descubrí que mi archivo pod estaba mal. Ayer moví el objetivo "OneSignalNotificationServiceExtension" en la sección incorrecta. Todo funciona bien. Gracias y disculpa. Puedo cerrar este problema

@indapublic ,
¿Podrías mostrar cómo se veía tu podfile cuando no funcionaba? Esto ayudará a las personas en el futuro si cometen el mismo error.

target 'app' do
  target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
  end
end

Todavía no tengo mucha experiencia con cocoapods, pensaba que las extensiones dependían de la aplicación

Pasé por este mismo problema exacto y, como lo hizo

Este problema surge cuando agrega el objetivo del servicio dentro del objetivo de su aplicación.

Esto está mal:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
  target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
  end
end

Esto es correcto:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
 end
 target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
 end

Este fragmento debe ser su propio objetivo de nivel superior y no un objetivo secundario de su aplicación.

Una vez corregido, simplemente ejecute pod install nuevamente.

Gracias, esto me lo arregló también. Tenía la impresión de que otras respuestas sugerían lo contrario.

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