IPA (iOS App Store Package) es un formato de archivo comprimido para distribuir aplicaciones en iOS. Cada aplicación que llega a la App Store pasa por el formato IPA: el desarrollador compila el proyecto, lo firma y sube el IPA a App Store Connect. Según Apple Developer Documentation, 2026, el formato IPA se basa en ZIP y contiene un archivo Mach-O ejecutable, recursos y metadatos de firma.
Puntos clave
IPA (iOS App Store Package) es un formato de paquete para distribuir aplicaciones en la plataforma Apple. Al igual que APK, IPA es técnicamente un archivo ZIP, pero con su propia estructura dictada por los requisitos de seguridad y firma de iOS.
El formato IPA apareció junto con iPhone OS 2.0 en 2008 y la App Store. Se basó en el formato de paquete .app de macOS, empaquetado en ZIP para reducir el tamaño durante la transmisión. Desde entonces, la estructura de IPA no ha sufrido cambios radicales — solo han evolucionado los esquemas de firma y los metadatos.
App Store — el canal principal. Distribución Ad-hoc — para pruebas en un número limitado de dispositivos (hasta 100). Distribución Enterprise — para aplicaciones corporativas sin publicar en la tienda. Los desarrolladores también usan IPA para pruebas en dispositivos reales a través de Xcode.
La estructura interna de un IPA es un archivo ZIP que contiene una carpeta Payload con el paquete .app y metadatos.
| Archivo/Directorio | Propósito |
|---|---|
| Payload/ | Carpeta raíz con el paquete .app |
| Payload/App.app/ | Paquete de la aplicación: archivo ejecutable, recursos, nib/storyboard |
| Payload/App.app/Info.plist | Metadatos: bundle ID, versiones, permisos |
| Payload/App.app/embedded.mobileprovision | Provisioning Profile para la instalación |
| iTunesMetadata.plist | Metadatos de iTunes (opcional) |
| META-INF/ | Firmas y hashes para verificación |
Dentro de la carpeta Payload se encuentra el paquete de la aplicación con extensión .app. Esto no es un archivo sino un directorio que iOS reconoce como una aplicación. En su interior: el archivo ejecutable Mach-O (el nombre coincide con el nombre del paquete), Info.plist, recursos, imágenes y cadenas localizadas.
El código fuente en Swift u Objective-C se compila en código máquina en formato Mach-O (Mach Object). El archivo contiene segmentos __TEXT (código), __DATA (datos) y __LINKEDIT (metadatos de enlazado). Los IPA modernos contienen solo la arquitectura arm64 de 64 bits.
Xcode automatiza la compilación de IPA: desde la compilación del código fuente hasta la creación de un archivo firmado listo para subir a App Store Connect.
Debug — para desarrollo, sin optimizaciones. Release — para publicación, con optimizaciones del compilador. Cada esquema define banderas de compilación, firma de código y entitlements. Xcode crea un Archivo (Archive) mediante Product → Archive.
// Info.plist — metadatos básicos de la aplicación
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundleIdentifier</key>
<string>com.example.myapp</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
Xcode compila cada archivo .swift o .m en un archivo objeto (.o), luego los enlaza en un único binario Mach-O. Los recursos (imágenes, XIB, storyboard) se procesan por separado: los storyboards se compilan al formato binario .storyboardc, las imágenes se optimizan en Asset Catalog (.car).
Firma es el aspecto más complejo de un IPA. Apple requiere una firma digital para cualquier aplicación que se ejecute en un dispositivo real. El sistema verifica el certificado del desarrollador, los entitlements y la conformidad del Provisioning Profile.
Certificate (Development o Distribution) — certifica la identidad del desarrollador. Provisioning Profile — vincula el certificado, el bundle ID y la lista de dispositivos permitidos (para ad-hoc). Entitlements — permisos de la aplicación (notificaciones push, iCloud, App Groups).
Xcode firma cada biblioteca y framework dentro del paquete .app, luego firma el propio paquete. El IPA final se firma a nivel del archivo ZIP. Apple verifica todos los niveles de firma durante la instalación. iOS no ejecuta la aplicación si al menos un componente tiene una firma no válida.
// Verificación de firma a través de Security framework
import Security
func checkSignature() -> Bool {
let url = Bundle.main.bundleURL
var staticCode: SecStaticCode?
guard SecStaticCodeCreateWithPath(
url as CFURL,
[], &staticCode
) == errSecSuccess else {
return false
}
return true
}
App Store Connect es la plataforma de Apple para gestionar la publicación de aplicaciones. La carga de IPA se realiza mediante Xcode Organizer, Transporter o la línea de comandos con xcrun altool.
Después de crear un archivo, Xcode ofrece Distribute App con una selección de método: App Store Connect, Ad-hoc, Enterprise o Development. Al seleccionar App Store Connect, el desarrollador especifica el equipo y confirma la carga. Xcode verifica la firma, envía el IPA a los servidores de Apple y devuelve el estado del procesamiento.
Para CI/CD se utiliza xcrun altool o el más reciente notarytool. Apple requiere notarización para aplicaciones de macOS; para iOS este paso es opcional pero recomendado. xcodebuild -exportArchive crea un IPA firmado listo para cargar.
Apple revisa cada IPA en busca de código malicioso, API privadas y cumplimiento de las App Store Review Guidelines. El proceso de revisión toma de 1 hora a 2 días.
Al cargar un IPA en App Store Connect, Apple aplica App Thinning — una tecnología que optimiza el binario para dispositivos específicos. Slicing elimina recursos para resoluciones y arquitecturas no soportadas. On-Demand Resources permite cargar partes de la aplicación (niveles de juego, videos) solo a petición del usuario. Bitcode es una representación intermedia que Apple puede recompilar para nuevas arquitecturas sin intervención del desarrollador.
App Store también verifica el cumplimiento del IPA con los requisitos de Sandbox: la aplicación no debe acceder a datos de otras aplicaciones, al sistema de archivos fuera de su contenedor ni a funciones de hardware sin permiso explícito del usuario.
TestFlight es el servicio oficial de Apple para pruebas beta de aplicaciones. El desarrollador sube el IPA a App Store Connect e invita a los evaluadores por correo electrónico o mediante un enlace público.
Internal Testing — hasta 100 miembros del equipo del desarrollador. No requiere revisión de Apple. External Testing — hasta 10 000 evaluadores, requiere pasar la revisión Beta App Review. TestFlight distribuye automáticamente las compilaciones a los evaluadores y recopila análisis.
Una compilación está disponible para pruebas durante 90 días después de la carga. TestFlight admite hasta 100 compilaciones activas simultáneamente. Cada evaluador puede instalar hasta 30 aplicaciones a la vez. Crashlytics se integra con TestFlight para recopilar informes de fallos y errores no fatales.
La compilación de IPA en un entorno de CI requiere un runner de macOS. GitHub Actions, GitLab CI y Bitrise proporcionan entornos macOS para compilaciones de iOS. La lane `build_app` de Fastlane automatiza todo el ciclo: archivado, firma, exportación de IPA y carga a TestFlight. Para la gestión de certificados y perfiles se utiliza Match — una herramienta de Fastlane que almacena firmas en un repositorio Git cifrado.
Los desarrolladores se encuentran con una serie de errores característicos al compilar y firmar IPA. La mayoría están relacionados con una configuración incorrecta de certificados y perfiles.
Xcode no encuentra un Provisioning Profile que coincida con el bundle ID y el certificado. Solución — descargar perfiles actuales en Xcode Accounts → Download Manual Profiles o usar Automatic Signing.
Este error ocurre al cargar un IPA con una arquitectura no válida. Los IPA modernos deben contener solo arm64. La presencia de i386 o x86_64 en el binario provoca el rechazo. Solución — verificar las arquitecturas en Build Settings y excluir las arquitecturas de simulador.
El IPA no contiene la estructura correcta Payload/App.app. Apple espera una jerarquía precisa. Solución — verificar que el archivo incluya la carpeta Payload con un paquete .app, no una lista plana de archivos.
Para la distribución corporativa se utiliza el programa Enterprise de Apple ($299/año). El IPA se firma con un certificado Enterprise y se puede instalar en cualquier dispositivo de la empresa sin limitación de cantidad. La distribución Ad-hoc está limitada a 100 dispositivos por cuenta de desarrollador ($99/año). Los sistemas MDM (Mobile Device Management) como Jamf y Microsoft Intune admiten la instalación masiva de IPA Enterprise.
Preguntas frecuentes
IPA utiliza el formato ejecutable Mach-O en lugar de DEX, requiere un Provisioning Profile para la instalación y pasa una revisión estricta de la App Store. APK, a diferencia de IPA, se puede instalar directamente sin intermediarios (sideloading).
No, la compilación de IPA requiere Xcode y herramientas de Apple, que solo están disponibles en macOS. Alternativas: servidores macOS remotos (Mac mini, AWS Mac) o servicios de CI en la nube (GitHub Actions con runner macOS).
Una aplicación simple — 5–30 MB. Una aplicación de complejidad media — 30–150 MB. Los juegos pueden alcanzar los 4 GB. Apple limita el tamaño de descarga por red móvil a 200 MB, pero el usuario puede descargar por Wi-Fi.
Para instalación ad-hoc se utiliza Xcode o Apple Configurator. Las aplicaciones Enterprise se distribuyen mediante un servidor interno con manifest.plist. Un usuario normal no puede instalar un IPA sin jailbreak o TestFlight.
Fat IPA contiene múltiples arquitecturas (arm64 + x86_64) para compilaciones universales. Thin IPA contiene solo una arquitectura para un dispositivo específico. Apple solo acepta thin IPA para publicación — los binarios fat son rechazados.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también