Saltarse al contenido principal
CI/CD

Automatic Capacitor IOS build with Codemagic

¿Cómo configurar una pipeline de CI/CD para tu aplicación de IOS Ionic utilizando Codemagic y Codemagic en 5 minutos (2024)

Martin Donadieu

Martin Donadieu

Marketing de Contenido

Automatic Capacitor IOS build with Codemagic

Entrega Continua para iOS utilizando Codemagic

Requisitos previos

Antes de continuar con el tutorial…

  • Miembro del programa de desarrolladores de iOS.
  • Deseo de leer 😆…

Importante sobre el precio

Precio de la acción de Codemagic

https://codemagic.io/pricing/

The service is ‘gratuito’ hasta 500 minutos/mes en macOS M1, dependiendo de la máquina elegida.
Vamos a utilizar una máquina macOS M1 puedes ver en la captura su precio y límites (precios a la creación de este tutorial, pueden cambiar en el futuro)

🔴 Una vez advertidos de los requisitos y precios, si lo deseas, continuamos…

📣 En el post asumimos que ya tenemos la aplicación creada en iTunes Connect, tenemos los certificados del ecosistema Apple, todo estará configurado por Codemagic!

¡Vamos a sumergirnos!

Pasos a seguir en el post

  1. Usando App Store Connect API con Codemagic
  2. Requisitos
  3. Crear una clave de App Store Connect API
  4. Usando una clave de App Store Connect API
  5. Copiar archivos de Fastlane
  6. Configurar Codemagic

1. Usando App Store Connect API con Codemagic

A partir de febrero de 2021, se requiere autenticación en dos factores o verificación en dos pasos para todos los usuarios para iniciar sesión en App Store Connect. Esta capa adicional de seguridad para su ID de Apple ayuda a asegurarse de que solo usted puede acceder a su cuenta.
Desde Soporte de Apple

Para empezar con match, es necesario revocar sus certificados existentes. Pero no se preocupe, tendrá el nuevo directamente.

Requisitos

Para poder usar App Store Connect API, Codemagic necesita tres cosas.

  1. Identificador del emisor.
  2. Identificador de la clave.
  3. Archivo de clave o contenido de la clave.

Crear una clave de App Store Connect API

Para generar claves, debe tener permiso de Administrador en App Store Connect. Si no tiene ese permiso, puede dirigir a la persona relevante a este artículo y seguir las siguientes instrucciones.

1 — Iniciar sesión en App Store Connect.

2 — Seleccionar Usuarios y Acceso.

Acceso del usuario de App Store Connect

3 — Seleccionar la pestaña API Claves.

App Store Connect API Claves

4 — Haz clic en Generar API Clave o en el botón de agregar (+).

Las claves de App Store Connect API crean

5 — Ingresa el nombre para la clave y selecciona un nivel de acceso. Recomendamos elegir App Manager derechos de acceso, lee más sobre los permisos del rol del programa de desarrollador de Apple aquí El nombre de la clave de App Store Connect __CAPGO_KEEP_0__ crea

App Store Connect API keys create name

La clave de un __CAPGO_KEEP_0__ no puede limitarse a aplicaciones específicas.

An API key’s access cannot be limited to specific apps.

Descargar claves de App Store Connect

Obtén aquí toda la información necesaria:
<1> Identificador de problema.

Descargar claves de App Store Connect
&lt;2&gt; Identificador de clave.
&lt;3&gt; Haga clic en “Descargar API Clave” para descargar su API clave privada. El enlace de descarga aparece solo si la clave privada no se ha descargado aún. Apple no almacena una copia de la clave privada. Por lo tanto, solo puede descargarla una vez.

🔴 Almacene su clave privada en un lugar seguro. Nunca debe compartir sus claves, almacene claves en un code repositorio o incluya claves en el lado del cliente code.

Agregar la clave API de App Store Connect a Codemagic

  1. Abrir la configuración de equipo de Codemagic Select Team integrations Abrir equipo Select code identidades de firma Select code identidades de firma Y subir el certificado Subir el certificado

  2. Haga clic en Agregar clave botón.

  3. Introduzca el App Store Connect API key name. Este es un nombre legible para humanos para la clave que se utilizará para referirse a la clave más tarde en las configuraciones de la aplicación.

  4. Introduzca el Issuer ID y Key ID valores.

  5. Haga clic en Elige un archivo .p8 o arrastre el archivo para subir la clave App Store Connect API descargada anteriormente.

  6. Haga clic Guardar.

Ahora podemos gestionar Codemagic con la clave de App Store Connect API, ¡genial!

2. Crea certificados y perfiles de configuración

Certificados

Abre XCode y ve a Configuración &gt; Cuentas &gt; ID de Apple &gt; Equipos y selecciona tu equipo.

Code identidades de firma

Haga clic en Administrar certificados &gt; + y seleccione Distribución de Apple.

Distribución de Apple

Luego puede crear un nuevo certificado.

Luego debe ir a la caja de llaves para descargar el certificado como un .p12 archivo.

Para hacer esto, necesita ir a la caja de llaves, cambiar a la sesión de inicio llave y luego la pestaña Mis Certificados.

Mis Certificados

Luego puedes seleccionar el certificado que deseas descargar. (Busca por la fecha del certificado)

Y luego haz clic derecho en el certificado y selecciona Exportar.

Elegir el formato de archivo Intercambio de Información Personal (.p12).

Eso descargará el certificado como un .p12 archivo.

Perfiles de provisión

Abrir Desarrollador de Apple y selecciona el equipo correcto.

Luego crea un nuevo perfil, haciendo clic en +

Crear un nuevo perfil

Y selecciona App Store Connect.

Selecciona App Store Connect

Luego debes seleccionar la aplicación correcta, ten cuidado, no puedes usar un wildcard de lo contrario el firmado fallará.

Selecciona la aplicación correcta

Selecciona el certificado correcto que creaste antes (busca la fecha de vencimiento, debe ser el mismo día y mes que hoy) y haz clic en Continúa.

Selecciona el certificado correcto

Finalmente ingresa el nombre del perfil y haz clic en Generar.

El nombre se utilizará para identificar el perfil en Codemagic.

Generar el perfil

Puedes descargar el perfil como un .mobileprovision archivo.

Descargar el perfil

Agregar el Code certificado de firma

Codemagic te permite subir certificados de firma code como archivos PKCS#12 que contienen tanto el certificado como la clave privada, necesarias para utilizarlo. Al subir, Codemagic te pedirá que proporciones la contraseña del certificado (si está protegido con contraseña) junto con un nombre de referencia único , que luego se puede utilizar en laconfiguración para obtener el archivo específico. codemagic.yaml Reference name

  • Cargar certificado
  • Generar nuevo certificado
  • Obtener desde el Portal de Desarrolladores
  1. Abre tus ajustes de equipo de Codemagic, ve a ajustes de codemagic.yaml &gt; Code identidades de firma.
  2. Abre certificados de iOS pestaña.
  3. Carga el archivo de certificado haciendo clic en Elegir un archivo .p12 o .pem o arrastrándolo a la caja indicada.
  4. Ingrese el Contraseña de certificado y elija un Nombre de referencia.
  5. Haga clic Agregar certificado

Agregar el perfil de configuración de provisión

Codemagic le permite subir un perfil de configuración de provisión para usarlo en la aplicación o para obtener un perfil desde el Portal de Desarrolladores de Apple.

El tipo de perfil, equipo, identificador de paquete y fecha de expiración se muestran para cada perfil agregado a las identidades de firma Code . Además, Codemagic le informará si está disponible un certificado de firma code coincidente en las identidades de firma Code (un check verde en el Campo de certificado o no)

3. Configura Codemagic

Configura secretos de Codemagic

¿Alguna vez te has preguntado de dónde vienen los valores de los ENV ? Bueno, ya no es un secreto – provienen de tu proyecto secreto.

4. Configura archivo de flujo de trabajo de Codemagic

Crea un archivo llamado codemagic.yml en la raíz de tu proyecto y agrega lo siguiente.

workflows:
  ionic-capacitor-ios-workflow:
    name: Capacitor iOS Workflow
    max_build_duration: 120
    instance_type: mac_mini_m1
    integrations:
      app_store_connect: CodeMagic
    environment:
      ios_signing:
        distribution_type: app_store
        bundle_identifier: YOUR_BUNDLE_IDENTIFIER
      vars:
        XCODE_WORKSPACE: ios/App/App.xcworkspace
        XCODE_SCHEME: App
        APP_STORE_APP_ID: YOUR_APP_STORE_APP_ID
      node: v20.14.0
      xcode: 15.4
      cocoapods: default
    triggering:
      events:
        - tag
      tag_patterns:
        - pattern: '*'
          include: true
    scripts:
      - name: Install dependencies
        script: |
          npm install
      - name: Cocoapods installation
        script: |
          cd ios/App && pod install
      - name: Update dependencies and copy web assets to native project
        script: |
          npm run build
          npx cap sync ios
      - name: Set up code signing settings on Xcode project
        script: |
          xcode-project use-profiles
      - name: Increment build number
        script: |
          cd $CM_BUILD_DIR/ios/App
          LATEST_BUILD_NUMBER=$(app-store-connect get-latest-app-store-build-number "$APP_ID")
          agvtool new-version -all $(($LATEST_BUILD_NUMBER + 1))
      - name: Build ipa for distribution
        script: |
          xcode-project build-ipa \
            --workspace "$XCODE_WORKSPACE" \
            --scheme "$XCODE_SCHEME"
    artifacts:
      - build/ios/ipa/*.ipa
      - /tmp/xcodebuild_logs/*.log
      - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app
      - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM
    publishing:
      email:
        recipients:
          - YOUR_EMAIL
        notify:
          success: true # To not receive a notification when a build succeeds
          failure: false # To not receive a notification when a build fails
      app_store_connect:
        auth: integration
        # Configuration related to TestFlight (optional)
        # Note: This action is performed during post-processing.
        submit_to_testflight: true
        # Configuration related to App Store (optional)
        # Note: This action is performed during post-processing.
        submit_to_app_store: false

This workflow should be triggered manually or after each GitHub etiqueta, si necesitas automatizar la etiqueta, consulta Automatic build and release with GitHub actions por primera vez.

Luego, este flujo de trabajo extraerá sus dependencias NodeJS, las instalará y construirá su aplicación de JavaScript.

Cada vez que envíe una nueva etiqueta, se construirá una versión en TestFlight.

Su aplicación no necesita utilizar Ionic, solo es necesario el Capacitor base, puede tener un módulo de Cordova antiguo, pero el Capacitor plugin de JavaScript se prefiere.

5. Desencadene el flujo de trabajo

Desencadene el flujo de trabajo

Envíe los nuevos commits a la rama main o development para desencadenar el flujo de trabajo.

Iniciado con el commit

Después de unos minutos, la construcción debería estar disponible en su panel de control de App Store Connect.

Panel de control de Testflight

Inicie manualmente

Puede iniciar el flujo de trabajo manualmente.

Primero seleccione la aplicación que desea construir, luego haga clic en Iniciar nueva construcción.

Seleccionar aplicación

Luego seleccione la rama que desea construir.

Seleccionar rama

Y haga clic en Iniciar nueva construcción.

Luego vaya a la lista de construcciones

Lista de construcciones

Y haga clic en la construcción para ver el resultado.

Resultado de la construcción

Puede desplegar desde la máquina local

Sí, puedes, y es sencillo.

Puedes usar Xcode para compilar y firmar tu aplicación, como siempre.

Gracias

Este blog se basa en los siguientes artículos:

Keep going from Automatic Capacitor IOS build with Codemagic

Si estás utilizando Automatic Capacitor IOS build with Codemagic para planificar la automatización de CI/CD, conecta con él Capgo CI/CD para el flujo de trabajo del producto en Capgo CI/CD Capgo Compilaciones Nativas para el flujo de trabajo del producto en Capgo Compilaciones Nativas Capgo Integraciones para el flujo de trabajo del producto en Capgo Integraciones Integración CI/CD para el detalle de implementación en Integración CI/CD, y GitHub Integración de Acciones para el detalle de implementación en GitHub Integración de Acciones

Actualizaciones en vivo para aplicaciones Capacitor

Cuando un bug en la capa web está activo, envíe la corrección a través de Capgo en lugar de esperar días para la aprobación de la tienda de aplicaciones. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

Comienza ahora

Últimas noticias de nuestro Blog

Capgo le da las mejores pistas que necesita para crear una aplicación móvil verdaderamente profesional.