iOS 27 SDK: los 3 requisitos obligatorios que pueden romper tu aplicación
Arturo Rivas Arias
Con cada nueva versión de iOS Apple introduce cambios que conviene adoptar cuanto antes. Sin embargo, algunas novedades dejan de ser simples recomendaciones para convertirse en requisitos obligatorios.
Eso es precisamente lo que ocurre con el SDK de iOS 27 incluido en Xcode 27. Existen tres cambios que pueden impedir que tu aplicación llegue siquiera a ejecutarse o que provoquen que la rechacen durante la revisión en App Store Connect.
Veamos cuáles son y cómo prepararnos para ellos.
1. UIScene pasa a ser obligatorio
Apple lleva varios años impulsando la arquitectura basada en escenas (UIScene). Desde iOS 13 convivía con el antiguo ciclo de vida basado únicamente en AppDelegate, pero el tiempo de transición ha terminado.
Durante el ciclo de iOS 26 ya aparecía el siguiente aviso en la consola:
UIScene lifecycle will soon be required.
Para aplicaciones compiladas mediante el SDK de iOS 27 el aviso deja de ser una advertencia. Si el proyecto no adopta el ciclo de vida basado en escenas, la aplicación finalizará durante el lanzamiento.
Esto implica que el archivo Info.plist debe declarar correctamente el manifiesto de escenas y que el proyecto debe disponer de un SceneDelegate encargado de inicializar la interfaz.
Un ejemplo simplificado sería:
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(
_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions
) {
guard let windowScene = scene as? UIWindowScene else {
return
}
let window = UIWindow(windowScene: windowScene)
window.rootViewController = HomeViewController()
window.makeKeyAndVisible()
self.window = window
}
}
Aunque SwiftUI utiliza automáticamente el sistema de escenas mediante el protocolo App, muchos proyectos UIKit antiguos todavía mantienen la arquitectura clásica y deberán migrar cuanto antes.
Si mantienes una aplicación con varios años de evolución, probablemente este sea el primer punto que deberías revisar.
2. La pantalla de lanzamiento también es obligatoria
Otro cambio importante llega desde App Store Connect.
Las aplicaciones compiladas con el SDK de iOS 27 deben definir explícitamente una pantalla de lanzamiento válida. En caso contrario aparecerá el nuevo error de validación:
ITMS-90870: Missing launch screen
App Store Connect comprobará que el Info.plist incluya alguna de estas propiedades:
UILaunchStoryboardNameUILaunchStoryboardsUILaunchScreenUILaunchScreens
La mayoría de proyectos recientes ya cumplen este requisito porque Xcode genera automáticamente esta configuración.
Sin embargo, aplicaciones muy antiguas o proyectos migrados entre múltiples versiones de Xcode pueden carecer de ella.
La buena noticia es que la solución suele ser sencilla: verificar la configuración del Info.plist antes de preparar una nueva versión para producción y asegurarse de que tenemos los recursos y ficheros necesarios según el caso.
3. Liquid Glass ya no puede desactivarse
Con iOS 26 Apple presentó Liquid Glass, el nuevo lenguaje visual del sistema.
Durante un año fue posible retrasar su adopción utilizando la clave:
<key>UIDesignRequiresCompatibility</key>
<true/>
En iOS 27 esa opción desaparece.
La clave sigue siendo válida sintácticamente, pero el sistema simplemente la ignora. Todas las aplicaciones compiladas con Xcode 27 utilizarán automáticamente la nueva apariencia.
En muchos proyectos el cambio será prácticamente transparente, pero aquellos que personalizan intensamente componentes UIKit pueden encontrarse con diferencias importantes.
Especialmente conviene revisar:
- Barras de navegación.
- Barras de pestañas.
- Scroll views con cabeceras translúcidas.
- Fondos personalizados.
- Componentes que modifican la apariencia mediante
UIAppearance. - Interfaces que dependen de márgenes o áreas seguras (safe areas) concretas.
No siempre será necesario modificar código, pero sí comprobar que el resultado visual sigue siendo consistente.
¿Qué deberías revisar primero?
Si estás preparando tu aplicación para iOS 27, el orden más recomendable sería:
- Migrar al ciclo de vida basado en
UIScene, ya que es el único cambio que puede impedir que la aplicación arranque. - Verificar que existe una pantalla de lanzamiento correctamente configurada.
- Probar la interfaz con Liquid Glass y corregir los elementos cuya apariencia haya cambiado.
Realizar estas comprobaciones durante el verano permitirá evitar problemas cuando Apple comience a exigir el SDK de iOS 27 para publicar nuevas versiones en App Store.
Conclusión
No todas las novedades de una WWDC implican cambios obligatorios, pero el SDK de iOS 27 sí introduce varios requisitos que afectan directamente al ciclo de vida de las aplicaciones, su configuración y su interfaz.
La mayoría son fáciles de resolver si se detectan con tiempo. En cambio, dejarlos para el último momento puede traducirse en aplicaciones que no arrancan, rechazos durante la subida a App Store Connect o interfaces que ya no se comportan como esperabas.
Si mantienes aplicaciones UIKit con varios años de historia, este es un buen momento para modernizar el proyecto y asegurarte de que está preparado para el ecosistema de iOS 27.