8 min de lectura

Cómo subir una app Flutter a App Store paso a paso (2026)

De la Mac a la revisión: Bundle ID, firma en Xcode, Info.plist, flutter build ipa, Transporter, TestFlight y los errores más comunes.

Portada: Sube tu app Flutter a App Store, con firma en Xcode, archivo IPA, TestFlight y revisión de Apple

La versión Android va en camino y ahora toca iPhone. Para subir una app Flutter a App Store necesitas cinco piezas: una Mac con Xcode 26, la membresía del Apple Developer Program, un Bundle ID registrado, la firma configurada en Xcode y un archivo .ipa generado con flutter build ipa. Aquí tienes cada paso con los archivos reales de Flutter, los requisitos de Apple de 2026 y los errores que más frenan la primera subida.

Requisitos antes de empezar

  • Una Mac con Xcode. Flutter lo dice claro: para compilar y publicar en iOS necesitas macOS.
  • Xcode 26 o posterior. Desde el 28 de abril de 2026, Apple solo acepta apps compiladas con Xcode 26 y el SDK de iOS 26. Y desde el 9 de septiembre de 2026, las apps deben apuntar a iOS 13 o superior, que es justo el mínimo que soporta Flutter.
  • Apple Developer Program. Cuesta 99 USD por año de membresía; Apple aclara que el precio puede variar por región y que se cobra en moneda local. Si dudas entre cuenta personal o de empresa, revisa nuestra guía de la cuenta de desarrollador de Apple.
  • Una política de privacidad y un enlace de soporte. Apple los exige a todas las apps.

1. Registra el Bundle ID y crea la app

El Bundle ID es el identificador único de tu app ante Apple (por ejemplo, com.tuempresa.tuapp). Elígelo con calma: no podrás cambiarlo después de subir la primera build.

  1. En tu cuenta de Apple Developer, entra a Certificates, Identifiers & Profiles > Identifiers y pulsa +.
  2. Elige App IDs, marca Explicit App ID, escribe el ID y activa solo los servicios que usas (notificaciones push, Sign in with Apple…).
  3. En App Store Connect, ve a Apps > + > New App, marca iOS, escribe el nombre, el idioma y el SKU, y selecciona el Bundle ID que acabas de crear.

Si App Store Connect no te deja crear la app, revisa que el titular de la cuenta haya aceptado el acuerdo más reciente en la sección Business.

2. Configura el proyecto en Xcode

Desde la carpeta del proyecto abre el workspace (no el .xcodeproj):

open ios/Runner.xcworkspace

Selecciona el target Runner y revisa:

  • General > Identity: Display Name (el nombre bajo el ícono) y Bundle Identifier, que debe coincidir con el que registraste. Si sigue en com.example…, cámbialo.
  • Signing & Capabilities: deja activo Automatically manage signing y elige tu Team. Xcode crea por ti los certificados y perfiles de aprovisionamiento.
  • Build Settings > iOS Deployment Target: 13.0 como mínimo. Súbelo si algún plugin exige una versión más alta.

Íconos y pantalla de inicio

Reemplaza los íconos de ejemplo en Runner/Assets.xcassets. Apple recomienda preparar variantes clara, oscura y tintada. Necesitas además el ícono de 1024 × 1024 para la tienda.

Info.plist: textos de permisos y cifrado

Cada permiso sensible (cámara, fotos, ubicación, micrófono…) necesita su texto de propósito en ios/Runner/Info.plist; sin él, la app se cierra al pedir el permiso y Apple la rechaza. Explica para qué lo usas:

<key>NSCameraUsageDescription</key>
<string>Usamos la cámara para escanear el código QR de tu factura.</string>

Agrega también la clave de cumplimiento de exportación. Si tu app no usa cifrado o solo usa el cifrado exento (por ejemplo, conexiones HTTPS del sistema), Apple indica poner NO:

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Así evitas el cuestionario de cifrado en cada build y el aviso Missing Compliance. Si usas cifrado no exento, pon YES y sube la documentación en App Store Connect.

Manifiesto de privacidad

Desde el 1 de mayo de 2024, App Store Connect rechaza las apps que usan required reason APIs sin declarar el motivo en PrivacyInfo.xcprivacy. Flutter ya incluye su propio manifiesto en Flutter.framework, y los plugins deben traer el suyo. En la práctica: actualiza Flutter y tus plugins antes de compilar. Solo crea un manifiesto en Runner si tu propio código nativo usa esas APIs.

3. Versión y número de build

La versión vive en pubspec.yaml:

version: 1.0.0+1

1.0.0 es la versión que ve el usuario (CFBundleShortVersionString) y 1 es el número de build (CFBundleVersion). Cada subida necesita un número de build distinto, así que súbelo en cada intento (1.0.0+2, 1.0.0+3…) o pásalo al compilar con --build-name y --build-number.

4. Genera el IPA con flutter build ipa

flutter build ipa

El comando crea un archivo de Xcode (.xcarchive) en build/ios/archive/ y el paquete para App Store (.ipa) en build/ios/ipa/. Para ofuscar el código Dart, agrega --obfuscate --split-debug-info=build/symbols.

También puedes archivar desde Xcode: destino Any iOS Device (arm64) y Product > Archive.

5. Sube la build a App Store Connect

Tienes tres caminos oficiales:

  1. Xcode Organizer: abre build/ios/archive/Runner.xcarchive, pulsa Validate App, corrige lo que aparezca y luego Distribute App > TestFlight & App Store.
  2. Transporter: la app gratuita de Apple para macOS. Arrastra el .ipa y pulsa Deliver.
  3. Línea de comandos o CI: xcrun altool --upload-app con una clave de la API de App Store Connect.

Apple procesa la build antes de mostrarla; según la documentación de Flutter, el correo de confirmación llega en unos 30 minutos.

6. Prueba en TestFlight

En la pestaña TestFlight de tu app, la build aparece cuando termina de procesarse. Puedes invitar hasta 100 testers internos (miembros de tu equipo), que la reciben sin revisión, y hasta 10.000 externos por correo o enlace público. La primera build que envías a un grupo externo pasa antes por la revisión beta de Apple. Más detalles en nuestra guía de qué es TestFlight.

7. Completa la ficha y envía a revisión

En App Store Connect, abre la versión 1.0 Prepare for Submission y completa:

  • Nombre, subtítulo, descripción, palabras clave y categoría.
  • Capturas: de 1 a 10 por tamaño, en .png o .jpg y sin transparencia. Apple pide al menos una de iPhone con Dynamic Island (pantalla mediana) y, si tu app corre en iPad, una de 13 pulgadas. Puedes hacerlas gratis con el generador de screenshots para iOS.
  • Privacidad de la app, clasificación por edad, precio y disponibilidad.
  • Información para la revisión: cuenta de demostración si hay login y notas para el revisor.

Elige la build, define cómo se lanza la versión (manual o automática) y pulsa Submit for Review. Más del 40 % de los problemas sin resolver en revisión, según Apple, caen en la guía 2.1 (crashes, contenido de relleno, información incompleta): prueba la build de TestFlight antes de enviarla.

Errores comunes al subir una app Flutter a App Store

ErrorCausa probableSolución
No valid code signing certificates were found / No profiles for 'com.example…'No hay Team elegido o el Bundle ID sigue siendo de ejemploElige el Team en Signing & Capabilities y usa tu Bundle ID registrado
exportArchive: Runner.app requires a provisioning profileFirma de distribución sin configurarFirma automática con tu Team, o abre el archivo en Xcode y usa Distribute App
Application not configured for iOSEl proyecto no tiene carpeta ios/flutter create --platforms=ios .
Apple rechaza la build por número repetidoNo subiste el número tras el +version: 1.0.0+2 o --build-number
La build queda en Missing ComplianceFalta ITSAppUsesNonExemptEncryptionAgrega la clave al Info.plist o responde en TestFlight
Correo ITMS-91053 o ITMS-91061 (manifiesto de privacidad)Flutter o un plugin sin manifiesto, o desactualizadosflutter upgrade, actualiza plugins y pod install --repo-update
La app se cierra al pedir la cámara o las fotosFalta el texto de propósito en Info.plistAgrega la clave NS…UsageDescription correspondiente

Preguntas frecuentes

¿Puedo subir una app Flutter a App Store sin Mac?

No directamente: compilar y firmar para iOS requiere macOS y Xcode. Sin Mac propia, la alternativa es un servicio de CI con máquinas macOS en la nube, como Codemagic.

¿Puedo generar el IPA sin cuenta de desarrollador?

Puedes probar en tu propio iPhone con un equipo personal gratuito en Xcode, pero esos perfiles vencen a los 7 días. Para TestFlight y App Store necesitas el Apple Developer Program.

¿Cuánto cuesta publicar en App Store?

99 USD por año de membresía, con precio en moneda local.

¿Cuánto tarda la revisión de Apple?

Según Apple, la mitad de los envíos se revisa en menos de 24 horas y el 90 % en menos de 48. Un envío incompleto tarda más o no pasa.

Deja lista tu ficha con AppConsol

¿También vas a publicar en Android? Sigue la guía hermana: cómo publicar una app Flutter en Play Store. Y para la ficha, en AppConsol tienes gratis generadores de screenshots, íconos, política de privacidad y términos y condiciones para App Store y Google Play. Entra a AppConsol y prepara todo lo que pide App Store Connect antes de enviar tu primera versión.

Sigue aprendiendo