Compilar y lanzar una aplicación para macOS
Cómo lanzar una aplicación Flutter en la macOS App Store.
Esta guía proporciona un tutorial paso a paso para lanzar una aplicación de Flutter en la App Store.
Preliminares
#Antes de comenzar el proceso de lanzamiento de tu aplicación, asegúrate de que cumpla con las Directrices de revisión de aplicaciones de Apple.
Para publicar tu aplicación en la App Store, primero debes inscribirte en el Apple Developer Program. Puedes leer más sobre las diversas membresías en la guía Elegir una Membresía de Apple.
Registrar tu aplicación en App Store Connect
#Gestiona el ciclo de vida de tu aplicación en App Store Connect (anteriormente iTunes Connect). Defines el nombre y la descripción de tu aplicación, agregas capturas de pantalla, estableces precios y gestionas lanzamientos para la App Store y TestFlight.
Registrar tu app implica dos pasos: registrar un Bundle ID único y crear un registro de aplicación en App Store Connect.
Para obtener una descripción detallada de App Store Connect, consulta la guía de App Store Connect.
Registrar un Bundle ID
#Cada aplicación de macOS está asociada con un Bundle ID, un identificador único registrado con Apple. Para registrar un Bundle ID para tu aplicación, sigue estos pasos:
- Abre la página App IDs de tu cuenta de desarrollador.
- Haz clic en + para crear un nuevo Bundle ID.
- Ingresa un nombre de app, selecciona Explicit App ID e ingresa un ID.
- Selecciona los servicios que usa tu app y luego haz clic en Continue.
- En la página siguiente, confirma los detalles y haz clic en Register para registrar tu Bundle ID.
Crear un registro de aplicación en App Store Connect
#Registra tu aplicación en App Store Connect:
- Abre App Store Connect en tu navegador.
- En la página de inicio de App Store Connect, haz clic en My Apps.
- Haz clic en + en la esquina superior izquierda de la página My Apps, luego selecciona New App.
- Completa los detalles de tu aplicación en el formulario que aparece. En la sección Platforms, asegúrate de que macOS esté marcado. Dado que Flutter no admite actualmente tvOS, deja esa casilla sin marcar. Haz clic en Create.
- Navega a los detalles de la aplicación para tu app y selecciona App Information en la barra lateral.
- En la sección General Information, selecciona el Bundle ID que registraste en el paso anterior.
Para obtener una descripción detallada, consulta Añadir una aplicación a tu cuenta.
Revisar la configuración del proyecto de Xcode
#Este paso cubre la revisión de las configuraciones más importantes en el espacio de trabajo de Xcode. Para procedimientos y descripciones detalladas, consulta Preparar para la distribución de la aplicación.
Navega a la configuración de tu target en Xcode:
- En Xcode, abre
Runner.xcworkspaceen la carpetamacosde tu aplicación. - Para ver la configuración de tu aplicación, selecciona el proyecto Runner en el navegador del proyecto de Xcode. Luego, en la barra lateral de la vista principal, selecciona el target Runner.
- Selecciona la pestaña General.
Verifica las configuraciones más importantes.
En la sección Identity:
App Category-
La categoría de aplicación bajo la cual se listará tu aplicación en la Mac App Store. Esto no puede ser none.
Bundle IdentifierEl App ID que registraste en App Store Connect.
En la sección Deployment info:
Deployment Target-
La versión mínima de macOS que admite tu aplicación. Para verificar qué versiones de macOS admite Flutter para el despliegue, consulta las Plataformas de despliegue compatibles de Flutter.
En la sección Signing & Capabilities:
Automatically manage signing-
Si Xcode debe gestionar automáticamente la firma de la aplicación y el aprovisionamiento. Esto está establecido en
truepor defecto, lo cual debería ser suficiente para la mayoría de las aplicaciones. Para escenarios más complejos, consulta la Guía de Firma de Código. Team-
Selecciona el equipo asociado con tu cuenta registrada de Apple Developer. Si es necesario, selecciona Add Account..., luego actualiza esta configuración.
La pestaña General de la configuración de tu proyecto debería parecerse a lo siguiente:
Para obtener una descripción detallada de la firma de aplicaciones, consulta Crear, exportar y eliminar certificados de firma.
Configurar el nombre de la aplicación, el identificador de bundle y el copyright
#La configuración para los identificadores de productos está centralizada
en macos/Runner/Configs/AppInfo.xcconfig. Para el nombre de la aplicación,
establece PRODUCT_NAME, para el copyright establece PRODUCT_COPYRIGHT,
y finalmente establece PRODUCT_BUNDLE_IDENTIFIER para el
identificador de bundle de la aplicación.
Actualizar el número de versión de la aplicación
#El número de versión predeterminado de la aplicación es 1.0.0.
Para actualizarlo, navega al archivo pubspec.yaml
y actualiza la siguiente línea:
version: 1.0.0+1
El número de versión consta de tres números separados por puntos,
como 1.0.0 en el ejemplo anterior, seguido de un número de
compilación opcional como 1 en el ejemplo anterior, separado por un +.
Tanto la versión como el número de compilación se pueden anular en la
compilación de Flutter especificando --build-name y --build-number,
respectivamente.
En macOS, build-name utiliza CFBundleShortVersionString
mientras que build-number utiliza CFBundleVersion.
Lee más sobre el versionado de iOS en Claves de Core Foundation
en el sitio de Apple Developer.
Añadir un icono de aplicación
#Cuando se crea una nueva aplicación Flutter, se crea un conjunto de iconos de marcador de posición. Este paso cubre el reemplazo de estos iconos de marcador de posición con los iconos de tu aplicación:
- Revisa las directrices de Iconos de Aplicaciones macOS.
- En el navegador del proyecto de Xcode, selecciona
Assets.xcassetsen la carpetaRunner. Actualiza los iconos de marcador de posición con tus propios iconos de aplicación. - Verifica que el icono haya sido reemplazado ejecutando tu aplicación usando
flutter run -d macos.
Crear un archivo de compilación con Xcode
#Este paso cubre la creación de un archivo de compilación y la subida de tu compilación a App Store Connect utilizando Xcode.
Durante el desarrollo, has estado compilando, depurando y probando con compilaciones de depuración. Cuando estés listo para enviar tu aplicación a los usuarios en la App Store o TestFlight, debes preparar una compilación de lanzamiento. En este punto, podrías considerar ofuscar tu código de Dart para hacer que sea más difícil de aplicar ingeniería inversa. Ofuscar tu código implica agregar un par de opciones a tu comando de compilación.
En Xcode, configura la versión y compilación de la aplicación:
-
Open
Runner.xcworkspacein your app'smacosfolder. To do this from the command line, run the following command from the base directory of your application project.open macos/Runner.xcworkspace - Selecciona Runner en el navegador del proyecto de Xcode, luego selecciona el target Runner en la barra lateral de la vista de configuración.
- En la sección Identity, actualiza la Version al número de versión de cara al usuario que deseas publicar.
- En la sección Identity, actualiza el identificador de Build a un número de compilación único utilizado para rastrear esta compilación en App Store Connect. Cada subida requiere un número de compilación único.
Finalmente, crea un archivo de compilación y súbelo a App Store Connect:
-
Create a release Archive of your application. From the base directory of
your application project, run the following.
flutter build macos - Abre Xcode y selecciona Product > Archive para abrir el archivo creado en el paso anterior.
- Haz clic en el botón Validate App. Si se informa de algún problema, resuélvelo y genera otra compilación. Puedes reutilizar el mismo ID de compilación hasta que subas un archivo (archive).
- Una vez que el archivo haya sido validado con éxito, haz clic en Distribute App. Puedes seguir el estado de tu compilación en la pestaña Activities de la página de detalles de tu aplicación en App Store Connect.
Deberías recibir un correo electrónico en un plazo de 30 minutos notificándote que tu compilación ha sido validada y está disponible para lanzarla a los probadores en TestFlight. En este punto, puedes elegir si lanzarla en TestFlight, o seguir adelante y lanzar tu aplicación en la App Store.
Para más detalles, consulta Subir una aplicación a App Store Connect.
Crear un archivo de compilación con las herramientas de la CLI de Codemagic
#Este paso cubre la creación de un archivo de compilación y la subida de tu compilación a App Store Connect utilizando comandos de compilación de Flutter y las Herramientas de la CLI de Codemagic ejecutadas en una terminal en el directorio de tu proyecto Flutter.
Instala las herramientas de la CLI de Codemagic:
bashpip3 install codemagic-cli-toolsNecesitarás generar una Clave de API de App Store Connect con acceso de Administrador de Aplicaciones para automatizar las operaciones con App Store Connect. Para que los subsiguientes comandos sean más concisos, establece las siguientes variables de entorno a partir de la nueva clave: issuer id, key id y el archivo de la clave API.
bashexport APP_STORE_CONNECT_ISSUER_ID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee export APP_STORE_CONNECT_KEY_IDENTIFIER=ABC1234567 export APP_STORE_CONNECT_PRIVATE_KEY=`cat /path/to/api/key/AuthKey_XXXYYYZZZ.p8`Necesitas exportar o crear un certificado de Mac App Distribution y un certificado de Mac Installer Distribution para realizar la firma de código y empaquetar un archivo de compilación.
Si tienes certificados existentes, puedes exportar las claves privadas ejecutando el siguiente comando para cada certificado:
bashopenssl pkcs12 -in <certificate_name>.p12 -nodes -nocerts | openssl rsa -out cert_keyO puedes crear una nueva clave privada ejecutando el siguiente comando:
bashssh-keygen -t rsa -b 2048 -m PEM -f cert_key -q -N ""Más adelante, puedes hacer que las herramientas de la CLI creen automáticamente un nuevo certificado de Mac App Distribution y Mac Installer Distribution. Puedes usar la misma clave privada para cada nuevo certificado.
Obtén los archivos de firma de código desde App Store Connect:
bashapp-store-connect fetch-signing-files YOUR.APP.BUNDLE_ID \ --platform MAC_OS \ --type MAC_APP_STORE \ --certificate-key=@file:/path/to/cert_key \ --createDonde
cert_keyes la clave privada de tu certificado Mac App Distribution exportado o una nueva clave privada que genera automáticamente un nuevo certificado.Si no tienes un certificado Mac Installer Distribution, pueden crear un nuevo certificado ejecutando lo siguiente:
bashapp-store-connect certificates create \ --type MAC_INSTALLER_DISTRIBUTION \ --certificate-key=@file:/path/to/cert_key \ --saveUsa la
cert_keyde la clave privada que creaste anteriormente.Obtén los certificados de Mac Installer Distribution:
bashapp-store-connect certificates list \ --type MAC_INSTALLER_DISTRIBUTION \ --certificate-key=@file:/path/to/cert_key \ --saveConfigura un nuevo llavero (keychain) temporal para firmar el código:
bashkeychain initializeAhora añade los certificados obtenidos a tu llavero:
bashkeychain add-certificatesActualiza la configuración del proyecto de Xcode para usar los perfiles de firma de código obtenidos:
bashxcode-project use-profilesInstala las dependencias de Flutter:
bashflutter packages pub getInstala las dependencias de CocoaPods:
bashfind . -name "Podfile" -execdir pod install \;Compila el proyecto macOS de Flutter:
bashflutter build macos --releaseEmpaqueta la aplicación:
bashAPP_NAME=$(find $(pwd) -name "*.app") PACKAGE_NAME=$(basename "$APP_NAME" .app).pkg xcrun productbuild --component "$APP_NAME" /Applications/ unsigned.pkg INSTALLER_CERT_NAME=$(keychain list-certificates \ | jq '[.[] | select(.common_name | contains("Mac Developer Installer")) | .common_name][0]' \ | xargs) xcrun productsign --sign "$INSTALLER_CERT_NAME" unsigned.pkg "$PACKAGE_NAME" rm -f unsigned.pkgPublica la aplicación empaquetada en App Store Connect:
bashapp-store-connect publish \ --path "$PACKAGE_NAME"Como se mencionó anteriormente, no olvides configurar tu llavero de inicio de sesión como predeterminado para evitar problemas de autenticación con las aplicaciones de tu máquina:
bashkeychain use-login
Lanzar tu aplicación en TestFlight
#TestFlight permite a los desarrolladores enviar sus aplicaciones a probadores internos y externos. Este paso opcional cubre el lanzamiento de tu compilación en TestFlight.
- Navega a la pestaña TestFlight de la página de detalles de la aplicación en App Store Connect.
- Selecciona Internal Testing en la barra lateral.
- Selecciona la compilación que deseas publicar para los probadores, luego haz clic en Save.
- Agrega las direcciones de correo electrónico de los probadores internos. Puedes agregar usuarios internos adicionales en la página Users and Roles de App Store Connect, disponible en el menú desplegable en la parte superior de la página.
Distribuir a dispositivos registrados
#Consulta la guía de distribución para preparar un archivo para la distribución a computadoras Mac designadas.
Lanzar tu aplicación en la App Store
#Cuando estés listo para lanzar tu aplicación al mundo, sigue estos pasos para enviar tu aplicación a revisión y lanzarla a la App Store:
- Selecciona Pricing and Availability en la barra lateral de la página de detalles de la aplicación en App Store Connect y completa la información requerida.
- Selecciona el estado en la barra lateral. Si este es el primer lanzamiento de esta aplicación, su estado es 1.0 Prepare for Submission. Completa todos los campos requeridos.
- Haz clic en Submit for Review.
Apple te notificará cuando se complete el proceso de revisión de la aplicación. Tu aplicación se lanzará de acuerdo con las instrucciones que especificaste en la sección Version Release.
Para más detalles, consulta Distribuir una aplicación a través de la App Store.
Resolución de problemas
#La guía Distribuye tu aplicación proporciona una descripción detallada del proceso de lanzamiento de una aplicación en la App Store.
Recursos adicionales
#Para aprender cómo empaquetar y distribuir tu aplicación de escritorio Flutter para macOS al estilo open source, sin usar una cuenta de Apple Developer paga, consulta la guía de empaquetado de macOS paso a paso.
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.