Lanzar pantallas compatibles con iOS6 y iOS7-forzado a pantalla de inicio
splash-screen (6)
Cuando se trata de la pantalla de inicio, no puedo encontrar una manera unificada de imitar el aspecto de la aplicación tanto en iOS6 como en iOS7 (que admite ambos). ¿Nos vemos obligados a hacer una pantalla de presentación regular de un logotipo o similar si tenemos un menú de la barra de herramientas o ustedes tienen alguna gran idea de cómo resolverlo?
Respuesta corta
En iOS 7, una aplicación puede usar una imagen de lanzamiento diferente según la versión de iOS en la que se esté ejecutando. Para proporcionar diferentes imágenes de inicio, agregue la clave UILaunchImages al archivo Info.plist y use un diccionario para describir cada imagen de inicio.
Fondo
Utiliza las siguientes teclas:
UILaunchImageName : una cadena que contiene el nombre del archivo de imagen PNG. El archivo de imagen debe residir en el nivel superior del paquete de aplicaciones. El nombre que especifique para esta clave no debe incluir una extensión de nombre de archivo, ni debe incluir modificadores como @ 2x, -568h, ~ iphone o ~ ipad.
En el disco, los nombres de archivo de sus imágenes pueden incluir los modificadores @ 2x, -568h, ~ iphone o ~ ipad según corresponda, aunque no son necesarios. El sistema contabiliza automáticamente dichos modificadores al elegir qué archivo cargar.
UILaunchImageMinimumOSVersion : para iOS7, esta debe ser una cadena "7.0".
UILaunchImageOrientation - Cadena que contiene uno de: Portrait, PortraitUpsideDown, Landscape, LandscapeLeft, LandscapeRight.
UILaunchImageSize - Cadena que especifica ancho y alto, por ejemplo: “{320, 480}”. Debe especificar el ancho y la altura con respecto al dispositivo en una orientación vertical. En otras palabras, las imágenes verticales y horizontales dirigidas al mismo dispositivo tendrían el mismo ancho y alto.
Si esta clave está presente, iOS 7 la utiliza exclusivamente para obtener imágenes de inicio.
PERO: ¡Encontré que adherirse a la convención de nombres también para iOS7 ayudó mucho!
Esta clave es compatible con iOS 7.0 y versiones posteriores.
OK - ¿Y ahora qué?
Porque ya tenía imágenes de lanzamiento para iOS6 y con todas sus convenciones de nomenclatura específicas. Elegí hacer una copia de todos ellos y prefijar el nombre con "iOS7-" para limitar mi propia confusión sobre los diferentes tamaños y nombres. Hacer que un prefijo resulte útil ya que la mayoría de las imágenes se cargarán de inmediato.
Los nombres de archivo: Ya tenía estos para iOS6, también enumero los tamaños de archivo para aquellos que lo necesitan:
- Default.png
(320x480)
- [email protected]
(640x960)
- Default@2x~ipad.png
(2048x1496)
- Predeterminado ~ ipad.png
(768x1004)
- Predeterminado1024x768.png
(1024x768)
- [email protected]
(2048x1536)
- [email protected]
(640x1136)
- Predeterminado 768x1024.png
(768x1024)
- [email protected]
(1536x2048)
- Default-Landscape ~ ipad.png
(1024x748)
- Default-Portrait@2x~ipad.png
(1536x2048)
Así que hice una copia de todos estos nombres de archivos para iOS7 (del mismo tamaño) con el prefijo "iOS7-":
- iOS7-Default.png
- [email protected]
- ...
En XCode
Ahora para crear su entrada en PLIST. Vaya a su-nombre-de-aplicación.plista. En un área en blanco, haga clic derecho y seleccione "Agregar fila". Asegúrese de que se convierta en un elemento superior y no en un subelemento de alguna otra información en la lista.
Escribir: UILaunchImages
Haga clic derecho en este UILaunchImages y seleccione el tipo de valor "Array".
Use la siguiente ilustración como guía del texto y cómo se verá cuando todo esté terminado:
Si abre esta matriz de modo que el pequeño triángulo indicador hacia la izquierda apunte hacia abajo, estará vacío la primera vez, pero si elige "agregar fila" mientras esté abierto, se creará una sub-línea. Haz eso ahora:
Haga clic con el botón derecho en UILaunchImages y seleccione "Agregar fila". Haga clic derecho en esta nueva línea (elemento 0) y seleccione el tipo de valor "Dict"
Continúe abriendo estos elementos con el indicador de triángulo y haga clic con el botón derecho y "Agregar fila"
Este elemento que llamará UILaunchImageMinimumOSVersion
y establecerá el tipo de valor en "cadena" y la cadena en "7.0"
Ahora las siguientes son todas las cadenas y deben estar al mismo nivel que el elemento UILaunchImageMinimumOSVersion. En el mismo dict (diccionario). Crea estos simplemente eligiendo "Agregar fila" para cada uno:
UILaunchImageName
- nombre-base-de-iOS7-lanzamiento-imagen. En mi caso este fue "iOS7-Default"
UILaunchImageOrientation
- ejemplo: retrato
UILaunchImageSize
: el tamaño de la base elemental iOS7-Default.png: "{320, 480}". El programa encontrará todos los archivos con permutaciones del nombre base. Recuerde seleccionar el nombre base del archivo sin las especificaciones de ipad / iphone / portrait / landscape o .png.
Nota:
Xcode ya había hecho los siguientes artículos en la lista .plist para mí después de haber agregado las primeras imágenes de iOS6 en todas las ranuras disponibles :-)
UILaunchImageFile ~ ipad ... = "Predeterminado" - así que esto estaba bien
UILaunchImages ~ ipad ... Tenía dos elementos que debían actualizarse a las versiones de iOS7, porque ahora estaban sosteniendo incorrectamente la versión de iOS6. Aquellos a los que nombré Default1024x768 y Default768x1024 y ahora simplemente prefijo "iOS7-" a cada uno de los nombres y terminé.
Ejemplo de cómo puede buscar aquellos que quieran editar directamente plist:
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>iOS7-Default </string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
</array>
[Editar por jd: se corrigió la ortografía de "UILaunchImages"]
Ahora puede agregar directamente los íconos de la aplicación y las imágenes de bienvenida en las imágenes.xcassets, haga clic en el botón + para agregar el conjunto de imágenes respectivo para iphone5 con iOS 5,6,7, iphone4, iPad. ahora no es necesario establecer el nombre de las imágenes como default.png, default @ 2x.png
Resalte el proyecto en el navegador del proyecto, seleccione "General", desplácese hacia abajo hasta "Iconos de aplicaciones", haga clic en "Usar catálogo de activos" y seleccione "Migrar". Sus iconos y pantallas de inicio existentes se migrarán automáticamente a un catálogo de activos. A continuación, puede seleccionar el catálogo para agregar más imágenes.
Para agregar nuevas imágenes, simplemente arrastre desde Finder y colóquelas en los cuadrados para cada tipo de imagen.
(Precaución: el editor de catálogo utiliza inexplicablemente un formato ancho no desplazable, y puede que falte cosas del lado derecho si su pantalla no es lo suficientemente ancha).
También puede usar la nueva función de catálogo de imágenes en Xcode 5 para administrar múltiples versiones de imágenes de lanzamiento.
También tuve el mismo problema con una aplicación anterior que desarrollé para iOS 7. Se archivó y se cargó correctamente con Xcode 6, pero el error "binario no optimizado para iPhone5" regresó con Xcode 7. Después de probar un sinnúmero de otras soluciones, solo tuvo éxito al eliminar todas las referencias a cualquier imagen de inicio (ya que estaba usando un .xib universal) Y establecer el destino de implementación de 7.0 a 8.0
Tenga cuidado cuando utilice un repositorio de images.xcassets, no le permitirá localizar sus pantallas de inicio.
Actualmente estoy tratando de obtener una versión en francés e inglés de nuestra aplicación.
WWW> ¿Funcionará este método ''plist'' si necesita localizar sus pantallas de inicio?