9 min de lectura

Generar IPA en Xcode: cómo exportar tu app iOS paso a paso

En Xcode no hay botón «Exportar IPA». Te mostramos cómo archivar, elegir entre App Store Connect, Release Testing o Debugging, exportar con xcodebuild y cuándo ni siquiera necesitas el archivo.

Portada: Generar .ipa en Xcode, con tarjeta Exportar build iOS: archivo .xcarchive, firma automática y ExportOptions.plist

Generar IPA en Xcode: cómo exportar tu app iOS paso a paso

Tienes la app lista y alguien te pide «mándame el IPA»: un tester con su iPhone, un cliente o tu servicio de CI. En Xcode no hay un botón que diga «Exportar IPA», y por eso tanta gente busca cómo generar un IPA en Xcode. El archivo .ipa sale de un proceso de dos pasos: primero archivas la app y luego la exportas con un método de distribución. En esta guía verás cómo generar el IPA desde Xcode, cuál método elegir según para quién es, cómo hacerlo por línea de comandos con xcodebuild y qué hacer con los errores más comunes.

Qué es un archivo IPA y cuándo lo necesitas

Un IPA (iOS App Store Package) es el paquete firmado de una app de iOS, listo para instalarse en dispositivos o para subirse a App Store Connect. Por dentro va el binario, los recursos y la firma con un certificado y un perfil de aprovisionamiento.

Antes de generar uno, piensa si de verdad lo necesitas:

  • Para publicar en App Store o TestFlight no hace falta guardar un IPA: Xcode puede subir la build directamente desde el Organizer. El IPA solo te sirve si prefieres subirla con Transporter o desde un script.
  • Para que testers instalen la app sin TestFlight, sí necesitas un IPA, firmado para los dispositivos registrados de esas personas.
  • Para un servidor de integración continua, el IPA es el resultado normal de cada build.

Requisitos: una Mac con Xcode, la membresía del Apple Developer Program y la firma en orden. Si te falta el certificado, sigue primero la guía de cómo crear el certificado de distribución Apple y su perfil.

Cómo generar un IPA en Xcode paso a paso

Paso 1: prepara versión, build y firma

  1. Selecciona el target de la app y, en la pestaña General, revisa Version (la que ve el usuario) y Build. Cada subida a App Store Connect necesita un número de build distinto.
  2. En Signing & Capabilities elige tu Team. Con Automatically manage signing activo, Xcode crea y descarga el certificado y el perfil por ti.
  3. En el selector de destino de la barra superior elige Any iOS Device (arm64) o un iPhone conectado.

Paso 2: archiva la app

Ve a Product › Archive. Xcode compila en modo Release y, al terminar, abre el Organizer con tu archivo (.xcarchive) en la sección Archives. Si se cierra, lo encuentras en Window › Organizer.

Antes de seguir puedes pulsar Validate App: Xcode hace una validación limitada del archivo y te avisa de algunos problemas antes de distribuirlo.

Paso 3: Distribute App y elige el método

Selecciona el archivo y pulsa Distribute App. Apple ofrece opciones con ajustes recomendados:

OpciónPara qué sirve¿Genera un IPA para guardar?
TestFlight & App StoreSubir la build para TestFlight y la revisión de App StoreNo, la sube (en Custom puedes elegir exportar)
TestFlight Internal OnlySubir una build solo para tu equipo, sin poder enviarla a App StoreNo, la sube
Release TestingProbar una versión antes del lanzamiento en dispositivos registradosSí
DebuggingInstalar y depurar en dispositivos registradosSí
EnterpriseDistribución interna, solo con el Apple Developer Enterprise ProgramSí

Si necesitas más control, elige Custom. Ahí aparecen los métodos clásicos: App Store Connect, Ad Hoc, Enterprise y Development. Con App Store Connect, Xcode te pregunta si quieres Upload o Export: elige Export para obtener el IPA en tu Mac.

Paso 4: opciones de distribución

Según el método, Xcode muestra opciones como:

  • App Thinning: None crea un solo IPA universal (lo normal); las otras opciones crean variantes por dispositivo dentro de una carpeta Apps.
  • Include manifest for over-the-air installation: genera un manifest.plist para instalar la app desde una página web. Apple pide URLs HTTPS para el IPA y dos imágenes PNG (57 × 57 y 512 × 512 píxeles).

Paso 5: firma y exporta

Elige Automatically manage signing (recomendado) o Manually manage signing si quieres escoger el certificado y el perfil. Revisa el resumen, pulsa Export y elige una carpeta.

Xcode crea una carpeta con:

  • TuApp.ipa: el archivo que buscabas.
  • ExportOptions.plist: las opciones que elegiste. Guárdalo, lo usarás en la línea de comandos.
  • DistributionSummary.plist y Packaging.log: resumen de firma y registro del empaquetado.

Generar el IPA con xcodebuild (línea de comandos y CI)

El mismo proceso se automatiza con dos comandos. Primero el archivo:

xcodebuild -workspace TuApp.xcworkspace -scheme TuApp \
  -configuration Release -destination 'generic/platform=iOS' \
  -archivePath build/TuApp.xcarchive archive

Si tu proyecto no usa CocoaPods ni un workspace, cambia -workspace TuApp.xcworkspace por -project TuApp.xcodeproj.

Luego la exportación, usando el ExportOptions.plist que te dejó Xcode:

xcodebuild -exportArchive -archivePath build/TuApp.xcarchive \
  -exportOptionsPlist ExportOptions.plist -exportPath build/ipa

Un ExportOptions.plist mínimo se ve así:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>method</key>
  <string>app-store-connect</string>
  <key>destination</key>
  <string>export</string>
  <key>teamID</key>
  <string>TU_TEAM_ID</string>
</dict>
</plist>

Valores de method que conviene usar hoy, según la ayuda de xcodebuild: app-store-connect, release-testing, debugging y enterprise. Los nombres antiguos app-store, ad-hoc y development están marcados como obsoletos: todavía se aceptan con una advertencia, pero en configuraciones nuevas usa los actuales. Con destination en upload, xcodebuild sube la build a App Store Connect en vez de guardar el IPA.

Si usas Flutter, React Native o Expo

  • Flutter: flutter build ipa archiva y exporta por ti; el IPA queda en build/ios/ipa/. Lo explicamos completo en cómo subir una app Flutter a App Store.
  • React Native: abre ios/TuApp.xcworkspace en Xcode y sigue los pasos de esta guía, o usa los comandos de xcodebuild de arriba.
  • Expo: EAS Build genera el IPA en la nube, sin pasar por el Organizer.

Cómo instalar o compartir el IPA

  • Testers con dispositivos registrados (Release Testing, Ad Hoc o Debugging): los dispositivos deben estar registrados en tu cuenta antes de exportar. Apple limita cuántos dispositivos puedes registrar por familia de producto y por año. La app se instala con Xcode (Window › Devices and Simulators), con Apple Configurator o desde una página web con el manifiesto OTA.
  • Muchos testers o personas fuera de tu equipo: usa TestFlight. No consume ese cupo de dispositivos y los testers instalan desde una app de Apple.
  • App Store: sube la build desde el Organizer o arrastra el IPA exportado con App Store Connect a Transporter, la app gratuita de Apple para macOS.

Errores comunes al generar un IPA en Xcode

  • El botón Distribute App está desactivado. Apple indica que el archivo debe contener una sola app de nivel superior. Si tienes frameworks o bibliotecas propias, revisa que no se estén instalando dentro del archivo (ajuste Skip Install en Yes para esos targets).
  • «No signing certificate "iOS Distribution" found». En esta Mac no hay un certificado de distribución con su clave privada. Activa la firma automática o importa el .p12; los pasos están en la guía del certificado de distribución.
  • «requires a provisioning profile» al exportar con xcodebuild. Con firma manual, el ExportOptions.plist debe incluir provisioningProfiles con el Bundle ID y el nombre del perfil. Lo más fácil es exportar una vez desde Xcode y reutilizar el plist que genera.
  • El tester no puede instalar el IPA. Su dispositivo no estaba en el perfil cuando exportaste. Regístralo, regenera el perfil (o deja que Xcode lo haga) y exporta de nuevo.
  • App Store Connect rechaza la subida por número de build repetido. Sube el valor de Build y vuelve a archivar.

Preguntas frecuentes

¿Necesito un IPA para subir mi app a App Store?

No. Desde el Organizer, Distribute App › TestFlight & App Store sube la build sin que guardes el archivo. El IPA es útil si subes con Transporter o desde un script de CI.

¿Se puede generar un IPA sin Mac?

No con las herramientas oficiales: compilar y firmar para iOS requiere macOS y Xcode. Si no tienes Mac, la alternativa es un servicio de CI con máquinas macOS en la nube.

¿Puedo generar un IPA sin cuenta de desarrollador?

Con un equipo personal gratuito puedes ejecutar la app en tu propio iPhone desde Xcode. Para distribuirla a dispositivos registrados, a TestFlight o a App Store, Apple pide el Apple Developer Program.

¿Dónde guarda Xcode los archivos de la app?

Los archivos (.xcarchive) aparecen en Window › Organizer › Archives; con clic derecho y Show in Finder ves su ubicación. El IPA queda en la carpeta que elegiste al exportar.

¿Qué diferencia hay entre Release Testing y Debugging?

Ambos instalan en dispositivos registrados. Release Testing firma la app de forma similar a la versión de App Store, para probar lo que vas a lanzar; Debugging está pensado para depurar y habilita entornos sandbox de algunas capacidades.

Siguiente paso: llega a la revisión con todo listo

Generar el IPA es solo una parte. Para que Apple apruebe la app también necesitas la ficha completa: icono de 1024 px, capturas en los tamaños que pide App Store Connect y una política de privacidad pública. Repasa la checklist para publicar en App Store y crea esos recursos gratis en AppConsol. Pruébalo hoy y envía tu app a revisión sin pendientes.

Sigue aprendiendo

Generar IPA en Xcode: guía paso a paso (2026) | AppConsol