Para subir compilaciones a App Store Connect se requerirá Xcode 26 y el SDK de iOS 26 a partir del 28 de abril de 2026. iOS 26 se lanzó en septiembre de 2025 — una actualización importante que incluye el diseño Liquid Glass y el framework Foundation Models anunciados en la WWDC25. iOS 27 se anunciará en la WWDC26 (del 8 al 12 de junio de 2026) y se espera que se publique en septiembre de 2026. Este artículo establece el orden de migración teniendo en cuenta ambas versiones.
Calendario de requisitos del SDK de App Store
Cada año, Apple eleva la versión mínima del SDK requerida para los envíos a App Store Connect.
| Fecha de entrada en vigor | Xcode requerido | SDK requerido | Estado |
|---|---|---|---|
| 29 de abril de 2024 | Xcode 15 | SDK de iOS 17 | En vigor |
| 24 de abril de 2025 | Xcode 16 | SDK de iOS 18 | En vigor |
| 28 de abril de 2026 | Xcode 26 | SDK de iOS 26 | ⚠️ Acción requerida |
| 2027 (estimado) | Xcode 27 | SDK de iOS 27 | Anuncio oficial después de la WWDC26 |
Fuente: <https://developer.apple.com/news/upcoming-requirements/>
Si no compilas con el SDK de iOS 26, no podrás subir actualizaciones de aplicaciones a App Store Connect. No se trata de nuevas funcionalidades — es un requisito obligatorio para seguir distribuyendo actualizaciones a los usuarios existentes.
Orden de prioridad para la migración a iOS 26
| Prioridad | Acción necesaria | Motivo |
|---|---|---|
| 🔴 Crítica | Actualizar a Xcode 26 y verificar la compilación | Directamente vinculado a la fecha límite del 28 de abril de 2026 |
| 🔴 Crítica | Migrar a TLS 1.2+ si se conecta a endpoints con TLS 1.0/1.1 | La versión mínima de TLS en URLSession cambió a 1.2 |
| 🟠 Alta | Reemplazar el uso de UIScreen.mainScreen | Marcado como obsoleto en el SDK de iOS 26 |
| 🟠 Alta | Verificar los entitlements de apps Push to Talk | El entitlement heredado ya no es compatible con el SDK de iOS 26 |
| 🟡 Media | Adaptar al diseño Liquid Glass | UIKit/SwiftUI estándar se adaptan automáticamente, pero la UI personalizada requiere verificación |
| 🟡 Media | Verificar el uso de claves Ubiquitous de CoreData | Provoca errores de compilación con el SDK de iOS 26 |
Primero, pon en orden las herramientas
Ya sea que estés trabajando en el cumplimiento de iOS 26 o en la validación temprana de iOS 27, los primeros bloqueos suelen ser problemas con las herramientas de compilación, no con las APIs del sistema operativo. Asegura las herramientas primero.
| Herramienta | Versión recomendada | Notas |
|---|---|---|
| Xcode | 26.4.1 o posterior | Requerido para envíos después del 28 de abril |
| Swift | 6.0 (Swift 5.x aún soportado) | Se recomienda concurrencia estricta de Swift 6 |
| SwiftUI | Versión incluida con el SDK de iOS 26 | Nuevos componentes para soporte de Liquid Glass |
| iOS Deployment Target | 16 o superior recomendado | iOS 15 e inferiores están perdiendo cuota de mercado rápidamente |
El problema más común al migrar al modo Swift 6 son los errores de concurrencia relacionados con CoreData. Acceder a NSManagedObject fuera de @MainActor ahora genera advertencias, por lo que la solución es envolver las operaciones dentro de bloques context.perform.
actor DataProcessor {
func process(context: NSManagedObjectContext) async {
await context.perform {
// CoreData operations go inside context.perform
}
}
}
Cambios de comportamiento en iOS 26 con los que es fácil tropezar
Cambio en la versión mínima de TLS
Para las apps compiladas con el SDK de iOS 26, la versión mínima de TLS para URLSession y el framework Network se ha elevado de 1.0 a 1.2.
Si los sistemas internos o las APIs externas todavía utilizan configuraciones TLS heredadas, las apps compiladas con el SDK de iOS 26 no podrán comunicarse con ellos.
// Example allowing legacy TLS (not recommended — temporary workaround only)
let config = URLSessionConfiguration.default
config.tlsMinimumSupportedProtocolVersion = .TLSv10 // triggers a warning
let session = URLSession(configuration: config)
La solución correcta es actualizar el lado del servidor a TLS 1.2 o superior. Asegúrate de verificar también las conexiones realizadas a través de SDKs de terceros.
Eliminación de UIScreen.mainScreen
UIScreen.mainScreen, que ya estaba previamente obsoleto, ha sido marcado como obsoleto en el SDK de iOS 26. Para compatibilidad con multiventana y soporte de escenas en iPadOS, el tamaño de pantalla ahora debe obtenerse desde UIWindowScene.
// Before (deprecated)
let screenWidth = UIScreen.main.bounds.width
// After (recommended)
if let scene = UIApplication.shared.connectedScenes
.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
let screenWidth = scene.screen.bounds.width
}
Cambio en el entitlement de Push to Talk
El entitlement com.apple.developer.pushkit.unrestricted-voip.ptt ya no funciona con el SDK de iOS 26. Se requiere la migración al framework Push to Talk (iOS 16+).
Eliminación de la clave de sincronización iCloud de CoreData
Claves como NSPersistentStoreUbiquitousContentNameKey, que fueron marcadas como obsoletas hace más de 10 años para la sincronización ubicua de iCloud, ahora provocan errores de compilación con el SDK de iOS 26. Los destinos de migración son NSPersistentCloudKitContainer (iOS 13+) o SwiftData (iOS 17+).
Adaptación al diseño Liquid Glass
Los componentes estándar de UIKit / SwiftUI (barras de navegación, barras de pestañas, sheets, etc.) se adaptan automáticamente al nuevo diseño. Para UI personalizada con dibujo manual, vale la pena verificar visualmente en un dispositivo real cómo interactúa con el desenfoque de fondo y los efectos de cristal.
Adelantarse a iOS 27 (WWDC26: del 8 al 12 de junio de 2026)
La WWDC26 se celebrará del 8 al 12 de junio de 2026. Como es habitual, el nuevo sistema operativo se anunciará el primer día con la Beta 1 disponible de inmediato. Se espera que iOS 27 se publique en septiembre de 2026.
| Elemento a verificar | Prioridad | Momento |
|---|---|---|
| Completar el cumplimiento del SDK de iOS 26 antes de iniciar las pruebas de la Beta de iOS 27 | 🔴 Crítica | Antes del 28 de abril de 2026 |
| Evaluar internamente la adopción del framework Foundation Models (LLM en dispositivo) | 🟡 Media | Después de la WWDC26 |
| Evaluar los requisitos de la API Declared Age Range (si tienes contenido orientado a jóvenes) | 🟡 Media | Después de la WWDC26 |
| Expansión de App Intents (integración más profunda con Siri y Spotlight) | 🟡 Media | Después de la WWDC26 |
| Re-verificar la adaptación de Liquid Glass con los cambios de diseño de iOS 27 | 🟡 Media | Después de la WWDC26 |
Prioridad de pruebas para soporte simultáneo de iOS 26 y 27
| Área funcional | Elementos de verificación de iOS 26 | Elementos de verificación de la Beta de iOS 27 |
|---|---|---|
| Redes | Identificar y corregir todas las conexiones por debajo de TLS 1.2 | Cumplir con los nuevos requisitos de seguridad para las APIs conectadas |
| Diseño y UI | Verificar visualmente las vistas personalizadas que se superponen con Liquid Glass | Aplicar los cambios de las nuevas directrices de diseño |
| Persistencia de datos | Verificar el uso de claves ubiquitous de CoreData | Confirmar que la migración a SwiftData / CloudKit está completa |
| Notificaciones push | Verificar los certificados APNs y los entitlements de Push to Talk | Comprobar problemas de renderizado de la UI de notificaciones en iOS 27 |
| Tamaño de pantalla | Verificar los cambios de diseño por el reemplazo de UIScreen.main | Confirmar soporte completo de multiventana en iPadOS |
| SDKs de terceros | Actualizar a versiones compatibles con iOS 26 | Verificar la compatibilidad de cada SDK con la beta de iOS 27 |
Problemas comunes en apps empresariales japonesas
| Elemento de riesgo | Detalles | Mitigación |
|---|---|---|
| Cifrado heredado en VPNs corporativas | DES/3DES/SHA1-96/SHA1-160 ya no son compatibles con VPN IKEv2. Las apps que usan VPNs basadas en NetworkExtension necesitan verificación | Actualizar a AES-256/SHA-256 + grupo DH 14 o superior |
| Versión de TLS en conexiones de intranet | Servicios web internos heredados como sistemas de asistencia y gastos pueden seguir usando TLS 1.0/1.1 | Auditar proactivamente la configuración TLS de los servidores internos |
| Cambios en el calendario japonés y el comportamiento de entrada | El manejo de dirección natural de texto en TextKit 2 ha cambiado. Compilar con el SDK de iOS 26 puede alterar la lógica de resolución de dirección de texto en japonés | Probar el texto vertical y la renderización de texto mixto en japonés en dispositivos reales |
| Disponibilidad de Apple Intelligence | El framework Foundation Models solo funciona en dispositivos compatibles con Apple Intelligence. Algunas funcionalidades en japonés se están desplegando gradualmente | Verificar la implementación de fallback para dispositivos no compatibles |
| MDM corporativo / gestión de dispositivos | Las apps compiladas con Xcode 26 necesitan verificarse bajo perfiles MDM | Coordinar con TI para ejecutar la distribución por TestFlight en tu entorno de despliegue corporativo de forma anticipada |
Qué verificar antes de actualizar
El primer paso más rápido es hacer un escaneo general de APIs obsoletas.
grep -R "UIScreen.mainb|unrestricted-voip.ptt|UbiquitousContentName|UbiquitousContentURL" ./
Ejecutar una verificación similar para problemas relacionados con TLS ayuda a detectar cosas que podrías pasar por alto.
grep -R "TLSv10|TLSv11|tlsMinimumSupported|kCFStreamSSLLevel" ./
