Estoy trabajando con una aplicación React Native y estoy tratando de configurar una pantalla de inicio personalizada, pero no puedo.
React Native crea un LaunchScreen.xib de forma predeterminada, así que he creado una LaunchImage dentro de Images.xcassets:
También leí que tengo que modificar el "Archivo de pantalla de inicio" en "Iconos de aplicaciones e imágenes de inicio" en mis opciones:
Una vez que hice eso, mi pantalla de inicio se volvió totalmente negra y cuando se carga la aplicación, hay marcos negros superiores e inferiores:
Entonces no sé qué tengo que hacer para configurar mi pantalla de inicio en mi proyecto React Native.
Estaré agradecido si alguien me puede ayudar con esos problemas.
Gracias por adelantado.
ios
xcode
react-native
asset-catalog
JV Lobo
fuente
fuente
Respuestas:
Pude resolver el problema, con la ayuda de este hilo: La imagen de inicio no aparece en la aplicación iOS (usando Images.xcassets)
Así que lo explicaré profundamente en caso de que pueda ayudar a alguien más.
Primero , necesitas crear ciertas imágenes. Lo que usé para eso fue esta plantilla y esta página web con un generador automático: TiCons
Cuando descargué mis imágenes, tomé las que están dentro de la carpeta assets / iphone, solo tomé esas:
También necesitas este Contents.json archivo en la misma carpeta, lo obtuve de un amigo:
Entonces, en este punto creé una carpeta llamada LaunchImage.launchimage dentro de la carpeta Images.xcassets en mi proyecto React Native y guardé las imágenes y el archivo Contents.json dentro de ella:
En segundo lugar , tienes que abrir tu proyecto en Xcode y en la configuración "General", debajo de " Iconos de la aplicación e Imágenes de inicio " tenemos que dejar la opción " Iniciar archivo de pantalla " vacía (también podemos eliminar el archivo LaunchScreen.xib dentro de nuestro proyecto ) y, a continuación, haga clic en " Usar catálogo de activos ". Se abrirá un modal, elegimos Migrar las Imágenes del catálogo
Ahora, en el selector " Launch Images Source ", podemos elegir la carpeta que creamos antes, LaunchImage (la que tiene nuestras imágenes):
Elegimos esto en lugar de Brand Assets y podemos eliminar la carpeta Brand Assets .
En este punto, podremos ejecutar nuestra aplicación React Native con nuestras imágenes de lanzamiento personalizadas:
Sé que parece un poco complejo para una tarea supuestamente fácil, pero después de leer mucho al respecto, esta era la única forma en que podía hacer funcionar mis imágenes de presentación, así que quería compartirlo con la comunidad.
fuente
Asegúrese de eliminar la aplicación del simulador. Luego haz una limpieza en tu proyecto.
fuente
He estado mirando estas respuestas mucho en SO que contiene soluciones sobre cómo crear una nueva pantalla de inicio. Quiero decir, pensemos en ello por un minuto.
Cuando creamos un nuevo proyecto react-native, ¿qué vemos en la pantalla de inicio?
Entonces eso me hizo pensar, ¿cómo lo hicieron?
Creo que debe haber una razón para esto. Así que entré
LaunchScreen.xib
e hice un cambio en el texto predeterminado "React Native ..." o lo que dijera. Ejecuté la aplicación una vez más para ver que la pantalla de inicio reflejaba mis ediciones.Solución 1 Edite el archivo LaunchScreen.xib existente
Solución 2 Crea la mía propia
Así que lo hice, me tomó más tiempo escribir esta respuesta que aprender a crear la mía propia.
Both of these solutions are compatible with all the devices.
Eliminar
LaunchScreen.xib
haga
images.xcassets
clic en clic derecho en el espacio en blanco haga clic y**import**
luego seleccione la imagen que desea agregar.Haga clic derecho en la carpeta raíz de su proyecto y agregue un nuevo archivo de tipo
Launch Screen
y asígnele el nombre que desee.Haga clic en su proyecto en el panel de navegación izquierdo, vaya a
Settings
>General
y debajoApp Icons and Launch Images
. Asegúrese de queLaunch Image Source
esté en blanco y queLaunch Screen File
sea el mismo nombre que la pantalla de inicio recién creada.Haga clic en su nuevo archivo que creó
step 2
, arrastreImage View
o edite como le plazca.Entonces eso es todo, ya está. Ni siquiera necesita limpiar la solución, simplemente reconstruir.
fuente
Actualizar
generator-rn-toolbox
es obsoleto. Utilice react-native-make en su lugar.vieja respuesta
Recomiendo generator-rn-toolbox para aplicar la pantalla de inicio o el icono principal usando react-native. Es más simple y fácil de usar a través de cli como react-native.
Requisitos
Instalar en pc
npm install -g yo generator-rn-toolbox
brew install imagemagick
Aplicar la pantalla de presentación en iOS
yo rn-toolbox:assets --splash YOURIMAGE.png --ios
o Android
yo rn-toolbox:assets --splash YOURIMAGE.png --android
Eso es todo. :)
Fuente
fuente
generator-rn-toolbox
la actualidad hace todo lo que hace la respuesta aceptada.Simplemente pasó por esto y funciona de maravilla. El único obstáculo que descubrí fue no borrar el contenido del simulador. Si descubre que su nueva pantalla de inicio no está funcionando, debe abrir la simulación e ir a lo siguiente:
Simulador> Restablecer contenido y configuración
Debe haber un almacenamiento en caché duro dentro de ese simulador, pero una vez hecho esto, vuelva a ejecutar y verá la aplicación. ¡Asegúrese de hacer esto tanto para simuladores xcode como para simuladores nativos de reacción!
fuente
Asegúrese de que la selección de 'Archivo de pantalla de inicio' esté vacía:
fuente
Siga este enlace:
Si quieres agregar una pantalla de bienvenida a mi aplicación React Native, sigue el proceso, el resultado será todo tuyo.
PASO: 1 Primero, creé una carpeta splashImageResource y agregué el archivo launchScreen.xib con la imagen de bienvenida.
PASO: 2 cambie el código tal como está escrito dentro de la etiqueta de subvistas. con este código
<subviews> <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" image="splash.png" translatesAutoresizingMaskIntoConstraints="NO" id="ZkI-RL-69Z"> </imageView> </subviews>
PASO: 3 Debes abrir tu aplicación en Xcode. Estos son los pasos a seguir:
a) Ve a la carpeta de tu proyecto
b) Abra la carpeta ios
c) Ve al archivo que tiene .xcodeproj como extensión, en mi caso es splasScreenTutorial.xcodeproj
d) Abra este archivo en su Xcode.
e) Elimine el archivo launchScreen.xib.
f) Haga clic en la carpeta splashScreenTutorial, luego vaya a la sección OBJETIVOS
g) Haga clic en la pestaña General en la esquina superior izquierda de su Xcode y desplácese hacia abajo hasta Iconos de aplicaciones e Imágenes de inicio
h) Vaya a Iniciar fuente de imágenes y haga clic en Usar catálogo de activos. Haga clic en migrar.
i) Elimine el texto LaunchScreen del archivo de pantalla de inicio.
j) Regrese a la carpeta de su proyecto y abra el archivo Images.xcassets. Debería ver AppIcon y LaunchImage.
k) A continuación, haga clic en LaunchImage. Finalmente, arrastre las imágenes de la pantalla de presentación que tiene de diferentes tamaños al cuadro Launch Image.
Arrastra las imágenes así.
Pantalla de bienvenida de prueba a) Para ver los cambios, debe eliminar la aplicación de su simulador si la ha ejecutado inicialmente.
b) Para eliminar la aplicación, haga clic en el menú Hardware en la barra de su Simulador y vaya a Inicio.
c) Toque y mantenga presionado el ícono de la aplicación particular que desea eliminar y haga clic en el signo X en el ícono.
d) Ejecute su aplicación nuevamente usando react-native run-ios
Puedes ver tu pantalla de bienvenida
fuente
Para mi
XCode 10.1
yreact-native 59.2
tuve que pasar por los pasos adicionales después de que ya la adición de imágenes, storyboard y 1 imagen universal.Show in Finder
, luego edite suContents.json
archivoLa imagen ahora debería estar centrada en iPhones de todos los tamaños (probado en vertical).
fuente
Si desea utilizar el archivo .xib de la pantalla de inicio existente que React Native ha configurado inicialmente, pero con su propio logotipo y color de fondo (y sin el texto predeterminado de React Native), puede seguir las instrucciones aquí: https: // medium.com/@kelleyannerose/react-native-ios-splash-screen-in-xcode-bd53b84430ec .
fuente
Si crea una pantalla de inicio con la ayuda de React, debe agregar lo mismo en el archivo LaunchScreen.xib en iOS Xcode para que pueda tomar una captura de pantalla y agregarla como una imagen en Images.xcassets.
Abra LaunchScreen y luego agregue UIImageView en la Vista desde la biblioteca de objetos desde el Panel derecho en Xcode.
Agregue restricciones finales, iniciales, inferiores y superiores a la vista. Como se muestra abajo -
No olvide cambiar UIImageView ContentMode como AspectFit para que se vea igual cuando se ejecute la aplicación.
Después de eso, debe agregar código en AppDelegate para que no obtenga una pantalla en blanco. El código es -
Puede referir: https://facebook.github.io/react-native/docs/running-on-device.html#pro-tip
fuente
Solo para aquellos que aún tienen problemas, falta un paso más en la respuesta aceptada antes de que funcione la pantalla de inicio de iOS.
Abra
Info.plist
en la carpeta del proyecto y elimine la tecla "Nombre base del archivo nib principal". Luego, reconstruya y, con suerte, el problema desaparecerá.fuente
Después de seguir las soluciones anteriores, mi aplicación se atascaba en la pantalla de inicio, así que hice los siguientes 7 pasos para agregar la pantalla de inicio personalizada en ios.
LaunchScreen.xib
archivo en su proyecto (observe que esta es la pantalla que se muestra por defecto en ios)Ahora tenemos que agregar la imagen para
Images.xcassets
que podamos hacer referencia a ella en elLaunchScreen.xib
para hacer ese gotoImages.xcassets
. haga clic en el+
botón seguido deimport
y luego agregue la imagen que desea mostrar en la pantalla de inicio. DebajoAppIcon
verá el nombre de su archivo de imagen. Este es el nombre que usaremos para hacer referencia en nuestroLaunchScreen.xib
Ahora tenemos que hacer referencia a la imagen que agregamos en el
LaunchScreen.xib
archivo, así que navegue hacia atrásLaunchScreen.xib
y haga clic en laimage view
que agregamos anteriormente y en la esquina derecha verá un montón de opciones. haga clic en el primero que diceimage
y seleccione la imagen que importó en el paso 5react-native run-ios
y debería ver los cambios.fuente
Debe configurar la fuente de imagen de la pantalla de inicio como su conjunto de imágenes. Luego elimine el archivo LauncScreen.xib. Luego haga una búsqueda global en su proyecto y elimine todas las referencias a LaunchScreen.xib (busque en todo su proyecto. Yo uso un editor de texto sublime, por lo que es cmd + shift + f) y debería funcionar.
fuente