React-native-onesignal: No se encontró el archivo OneSignal / OneSignal.h

Creado en 24 ene. 2017  ·  44Comentarios  ·  Fuente: OneSignal/react-native-onesignal

Había un problema ya abierto y cerrado, pero sigue siendo un problema. Ver el número 133 .

Mi comentario sobre el tema describe el problema.

React Native 0.40.0 OneSignal 3.0

Comentario más útil

Fusionado, probado y arreglado.

Todos 44 comentarios

Básicamente, significa que el marco no se actualiza en el módulo, si elige no usar CocoaPods. ¿Estoy en lo correcto?

Sí, creo que eso es correcto. No estoy usando CocoaPods.

Veo. El problema actual es que no puedo encontrar ninguna forma de hacer que la biblioteca reconozca el marco si está fuera de la biblioteca, por ejemplo, en el grupo Frameworks en el proyecto Xcode. Eso hace que la biblioteca dependa de una versión específica del marco, en lugar de agregarla manualmente.

Oye, encontré un repositorio con sugerencias para ti. Hice que mi código funcionara de nuevo.
https://github.com/eriksape/react-native-onesignal#faq -repeating-issues

@avishayil ,

Realmente no estoy familiarizado con el objetivo-c, realmente desearía poder ayudar a resolver el problema.
¿Podría haber una actualización de la documentación para informar a las personas sobre el problema?

Mientras tanto, copié el directorio OneSignal.framework en mi proyecto ios con el directorio "Encabezado" correcto y el archivo "OneSignal" y cambié las "Rutas de búsqueda del marco" para señalarlo.

Tendré que estar atento a las actualizaciones, pero esto funciona para mí por ahora. ¡Gracias!

@haxtrujillo También se encuentra con este problema cuando no usa CocoaPods. ¿Qué archivo de encabezado y archivo OneSignal cambió para que esto funcione a través de la importación directa en lugar de las instrucciones README oficiales? ¡Gracias!

@dguillamot asegúrese de configurar las "Rutas de búsqueda de encabezado" y las "Rutas de búsqueda de encabezado", copie los archivos de la versión "B" (actual) dos niveles más arriba.

screen shot 2017-01-25 at 11 13 26 pm

Todavía me pregunto cómo solucionarlo sin esta forma "fea". @ jkasten2 ¿puedes ayudarme aquí?

Tengo el mismo problema, además de React / <...>. H no encontrado.
screen shot 2017-01-26 at 2 31 54 pm

screen shot 2017-01-26 at 7 37 18 pm

También tengo el mismo problema con React-Native 0.4.0,

Después de instalar algún complemento (react-native-firestack), de repente sucede.

@rustykey @bitsal

Tuve que hacer 2 cosas separadas para que funcionara:

0 - Creé una subcarpeta en la carpeta principal de mi proyecto (donde está el archivo del espacio de trabajo xcode) llamada / ios / OneSignal

1 - Luego, de manera similar a lo que haxtrujillo dijo anteriormente, en la carpeta node_modules / react-native-onesignal / ios / Frameworks, puede hacer doble clic / expandir el archivo OneSignal.framework. Dentro hay una subcarpeta Versiones / B. Seleccione los archivos 'Encabezados' y 'OneSignal' allí, copie (CMD-C) y luego seleccione el 'archivo' OneSignal.framework nuevamente y péguelo.

Luego, copié este nuevo archivo OneSignal.framework en la carpeta / ios / OneSignal que hice anteriormente en el paso 0.

2 - A continuación, copié el archivo node_modules / react-native-onesignal / ios / RCTOneSignal.xcodeproj y la carpeta RCTOneSignal en la carpeta ios / OneSignal que hice en el paso 0.

Luego, en Xcode, agregué el archivo OneSignal.Framework a la carpeta Frameworks de mi espacio de trabajo xcode, y agregué RCTOneSignal.xcodeproj a la carpeta Bibliotecas. Luego, seleccioné el archivo xcodeproj en mi carpeta Bibliotecas en xcode. Verificando que el objetivo era RCTOneSignal, fui a BuildSettings y cambié las rutas de búsqueda del marco a '$ (PROJECT_DIR) / OneSignal'. De esa manera, podría encontrar el nuevo OneSignal.framework que hice. También cambié las rutas de búsqueda de encabezado en la misma área de configuración de compilación para asegurarme de que estaba recogiendo React. En mi caso, fue más fácil hacerlo en relación con PROJECT_DIR como '$ (PROJECT_DIR) /../ node_modules / react-native / React'

Después de estos cambios, todo está ahora en mi carpeta ios / OneSignal y realmente no necesito la carpeta node_modules en absoluto. Sin embargo, todavía lo estoy usando para Android. Pero si solo es ios, no necesita la carpeta node_module ya que esta solución básicamente ha realizado una copia local.

Definitivamente, esta no es una buena solución a largo plazo y debe deshacerse una vez que el autor haya actualizado este paquete. Es simplemente un atajo del módulo de nodo copiando el proyecto para que pueda cambiar la configuración de compilación. Una vez que se modifica el módulo de nodo para solucionar este problema, estos cambios deben deshacerse.

¡Gracias @dguillamot !

Lo he hecho de una manera un poco diferente, pero el sentido es el mismo, supongo.
package.json :

"scripts": {
     ...
    "fix-onesignal-ios-issue-161": "cd node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework && cp -R Versions/B/* . && cd ../../../../..",
    "run-ios": "npm run fix-onesignal-ios-issue-161 && echo '.env.local' > /tmp/envfile && react-native run-ios",
     ...
}

PD:
@avishayil
Noté en las Rutas de búsqueda de encabezado del proyecto RCTOneSignal una línea como esta "$(SRCROOT)/../../../ios/Pods/Headers/Public/OneSignal" .
Parece que la biblioteca requiere que tenga las carpetas node_modules y ios en el mismo nivel. En algunos casos (cuando la estructura del proyecto es un poco diferente) no funcionará porque no hay carpeta $(SRCROOT)/../../../ios .

PD 2:
Además, tuve un problema como React/RCT<...>.h file not found . Lo solucioné compilando React primero desde XCode (consulte https://github.com/facebook/react-native/issues/12042#issuecomment-275025960).

react-native run-ios aún no funciona (, solo desde XCode.

No ha habido una carpeta Versions/B desde la versión 2.1.5 del SDK nativo de iOS OneSignal. ¿Puede verificar para asegurarse de que está introduciendo el último OneSignal.framework? Actualmente 2.3.5 es el último.

@ jkasten2 right, 2.3.5 versión ahora
Estoy seguro porque muchas veces corro

rm -rf node_modules/react*
rm -rf ios/build/* && rm -rf ios/Pods/*
rm -rf ~/Library/Developer/Xcode/DerivedData/*

POR CIERTO,

react-native-cli: 2.0.1
react-native: 0.40.0

Podfile:

pod 'OneSignal', '~> 2.0'

pero en realidad instala 2.3.5 , lo veo en la salida de la consola

@ jkasten2 ,
Estoy usando React Native 0.40.0, OneSignal 3.0 y no CocoaPods.

@ jkasten2
Tienes razón. No hay carpeta Versions/B en ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework/Versions/ :

Current -> A

pero Versions/B todavía está aquí node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework/Versions/

package.json
"react-native-onesignal": "3.0.0",

El problema parece ser que faltan enlaces simbólicos de la etiqueta de lanzamiento 3.0.0.

@avishayil Me di cuenta de que la etiqueta v3.0.0 los tiene, pero el maestro los tiene.
https://github.com/geektimecoil/react-native-onesignal/tree/v3.0.0/ios/Frameworks/OneSignal.framework
https://github.com/geektimecoil/react-native-onesignal/tree/master/ios/Frameworks/OneSignal.framework

El repositorio nativo del SDK de iOS también tiene enlaces simbólicos aquí.
https://github.com/OneSignal/OneSignal-iOS-SDK/tree/2.3.5/iOS_SDK/Framework/OneSignal.framework

¿Puede publicar una actualización con estos archivos que faltan?

@ jkasten2 Ahí lo tienes, en este proyecto en la sucursal examples :
https://github.com/geektimecoil/react-native-onesignal/tree/examples/examples/RNOneSignalFramework

Intente construir este proyecto, dice que faltan los archivos de encabezado.

@avishayil Hice un clon nuevo y siguiendo las instrucciones a continuación, pero no .h faltante.
https://github.com/geektimecoil/react-native-onesignal#running -example-project

Nota: Las instrucciones deben ser cd OneSignalRN lugar de cd OneSignalRNExample .

Ejecutó el proyecto tanto desde el terminal como las instrucciones indicadas y construyó directamente desde Xcode abriendo el archivo RNOneSignal.xcworkspace .

Hola @ jkasten2 , no hay problema al construir un proyecto con CocoaPods. El problema es cuando se intenta construir un proyecto con el marco sin CocoaPods.

Mencioné esto antes, perdóneme si esto es un duplicado pero: Uno de los problemas es que el archivo de encabezado OneSignal.h ESTÁ en el repositorio, pero no están en una carpeta llamada "OneSignal", que es como están referenciado.

@avishayil sigue siendo el problema sin cacao ?, perdón por no haberlo notado, déjame ver chicos y te lo voy a hacer saber :)

@eriksape

@avishayil No sé qué pasó, mi método para insertar sigue siendo correcto, ya que veo que las mazorcas de cacao hacen lo mismo pero automáticamente y descargan muchos paquetes con la última versión de OneSignal-iOS-SDK como dijo @ jkasten2 es la 2.3.5, ¿sabe que rebaja la versión del sdk ahora?

Chicos, tengo el problema del encabezado cuando uso v2 y Cocoapods: / ¿Alguna pista sobre por qué? ¿Debería crear un problema específico?

Echaré un vistazo a la v2 esta semana.

Estoy en RN40 y OneSignal3.0, uso el Framework y sigo obteniendo "OneSignal / OneSignal.h not found". Mis rutas de encabezado / marco están configuradas correctamente, la biblioteca se ha vinculado con un enlace nativo de reacción, por lo que no veo ningún problema con respecto a la configuración.

Sin embargo, tuve lo mismo con Cocoapods.

Estaba teniendo este error para v3.0.0 y reaccioné al nativo 0.41. Lo conseguí para compilar ejecutando el comando react-native link.

Corrección: todavía aparece un error de compilación :(

¿Ustedes están usando CocoaPods?

@avishayil No, no estoy usando Cocoapods y no lo usaré. Acabo de recibir sus últimos cambios en 3.0.2 y todavía no se está construyendo. ¿Alguna actualización sobre cómo solucionar este problema?

@larryranches Esto sigue siendo algo que estoy analizando junto con el equipo de OneSignal. @ jkasten2 y actualizaré cuando tengamos una solución para esto.

@avishayil ¡ Gracias por investigar esto! Sería bueno que esto funcione, ya que tenemos que actualizar a la última versión de React Native 0.41. Háganos saber una vez que haya una solución.

El mismo problema cuando se ejecuta con Xcode. La aplicación comienza con node node_modules/react-native/local-cli/cli.js run-ios pero falla porque RNOneSignal es undefined .

@avishayil He intentado usar Coca y el Framework, mismo resultado.

@ edo1493 ¿puedes compartir un repositorio con el error reproducido?

Esta solicitud de extracción funcionó para mí ✌️:
https://github.com/geektimecoil/react-native-onesignal/pull/184

Interesante, ¿cómo lo construiste? ¿Desde cero o hacia un proyecto existente?

@avishayil en un proyecto existente (con el problema descrito aquí) y siguió el README actualizado en https://github.com/jkasten2/react-native-onesignal.
(Tuve que eliminar Podfile y archivos relacionados)

PR # 184 también me funciona

Fusionado, probado y arreglado.

He hecho todas las cosas que aún no se encuentran :(

También tengo este error con Cacaopods ... RN 0.50 y react-native-onesignal ^ 3.0.5

¿Alguien corrigió este error? estoy frente a RN 0.51 y react-native-onesignal ^ 3.0.5

Reinstalar una señal desde cero me ayudó a solucionar este problema.

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