Saltar al contenido principal

Cómo personalizar los scripts de compilación con Capacitor CLI

Aprenda a personalizar sus scripts de compilación utilizando Capacitor CLI para despliegues eficientes y actualizaciones de aplicaciones adaptadas a varias plataformas.

Martin Donadieu

Martin Donadieu

Gerente de Contenido

Cómo personalizar los scripts de compilación con Capacitor CLI

Capacitor CLI le permite personalizar el proceso de compilación de su aplicación para las plataformas iOS, Android y web. Al ajustar los scripts de compilación, puede:

  • Acelera actualizaciones: Envía cambios instantáneamente sin retrasos de tiendas de aplicaciones.
  • Controla despliegues: Vuelve a enviar actualizaciones o dirige grupos de usuarios específicos.
  • Protege tu aplicación: Utiliza cifrado para proteger actualizaciones.
  • Optimiza compilaciones: Ajusta configuraciones para necesidades específicas de plataforma.

Resumen rápido de características clave:

  • Archivos de configuración: Utiliza __CAPGO_KEEP_0__ y capacitor.config.json __CAPGO_KEEP_1__ package.json para gestionar las configuraciones de compilación.
  • Scripts personalizados: Agregar tareas de precompilación y postcompilación para automatizar.
  • Hooks de compilación: Ejecutar code durante etapas específicas del proceso de compilación.
  • Variables de entorno: Simplificar compilaciones específicas del entorno con .env archivos.

Capgo, una herramienta de despliegue, mejora este proceso con actualizaciones automatizadas, seguimiento de versiones, y optimización de rendimiento global. Siga leyendo para aprender a configurar y personalizar tus scripts de compilación para una mayor eficiencia.

Introduciendo Capacitor Configurar

Capacitor Documentación del Marco de Referencia del Sitio Web

Proceso de compilación predeterminado en Capacitor

Es crucial entender cómo Capacitor maneja su proceso de compilación predeterminado si deseas personalizarlo de manera efectiva. A continuación, se desglosará el proceso de compilación y los archivos de configuración clave del Capacitor CLI.

Pasos de compilación estándar

Capacitor utiliza un proceso paso a paso para transformar tu aplicación web en compilaciones específicas de plataforma. A continuación, se muestra qué ocurre durante el proceso de compilación predeterminado:

FaseDescripciónSalida
Construye WebCompila activos web utilizando herramientas de tu marco de trabajoPaquete web optimizado
Copiar ActivosMueve activos web a carpetas de plataforma nativaDirectorios de activos específicos de plataforma
Construye NativaEjecuta comandos de construcción específicos de plataformaBinarios listos para despliegue
VerificaciónVerifica la integridad y dependencias de la construcciónEstado de la construcción y advertencias

Archivos de Configuración Principales

Two key configuration files shape how Capacitor handles your builds:

capacitor.config.json
This is the core configuration file for your Capacitor project. It sets important parameters for your builds:

{
  "appId": "com.example.app",
  "appName": "MyApp",
  "webDir": "dist",
  "bundledWebRuntime": false,
  "plugins": {
    "SplashScreen": {
      "launchShowDuration": 3000
    }
  }
}
  • appId: Un identificador único para tu aplicación.
  • appName: El nombre de tu aplicación.
  • webDir: Specifies where Capacitor should look for the web assets (e.g., dist).
  • plugins: Te permite configurar opciones específicas de plugins, como opciones de SplashScreen.

package.json
Este archivo incluye scripts de compilación y dependencias que influyen en el proceso de compilación:

{
  "scripts": {
    "build": "npm run build:web && cap sync",
    "build:web": "vite build",
    "cap:build": "cap build"
  }
}
  • El webDir configuración en capacitor.config.json tells Capacitor dónde ubicar tus activos web compilados para su inclusión en las compilaciones nativas.
  • Después de realizar cambios en capacitor.config.json, debes ejecutar cap sync para asegurarte de que tus proyectos nativos estén actualizados.

A continuación, exploraremos cómo puedes modificar estos ajustes para personalizar aún más tus compilaciones.

Modificar Scripts de Compilación

Puedes ajustar el proceso de compilación predeterminado de Capacitor para que se adapte mejor a las necesidades de tu proyecto. Aquí te explico cómo hacerlo:

Configuración del Archivo

Puedes ajustar el proceso de compilación editando el capacitor.config.json archivo. A continuación, se muestra un ejemplo de configuración:

{
  "appId": "com.example.app",
  "webDir": "www",
  "server": {
    "hostname": "localhost",
    "androidScheme": "https",
    "iosScheme": "https",
    "allowNavigation": ["*.example.com"]
  },
  "android": {
    "buildOptions": {
      "keystorePath": "release.keystore",
      "keystorePassword": "mypassword",
      "keystoreAlias": "release",
      "keystoreAliasPassword": "mypassword"
    }
  },
  "ios": {
    "scheme": "App",
    "automaticProvisioning": true
  }
}

A continuación, se presentan algunos ajustes clave que puedes modificar:

  • webDir: especifica dónde se encuentran tus activos web compilados.
  • server: Configura el servidor de desarrollo, incluyendo el nombre de host y permisos de navegación.
  • android/ios: Permite configuraciones de compilación específicas de plataforma, como detalles de keystore para Android o opciones de provisión para iOS.

Creando NPM Scripts

Para simplificar tu flujo de trabajo, agrega scripts de NPM personalizados a tu package.json archivo. Aquí tienes un ejemplo:

{
  "scripts": {
    "prebuild": "node ./scripts/prepare-env.js",
    "build": "npm run build:web && cap sync",
    "build:web": "vite build",
    "build:ios": "cap build ios --release",
    "build:android": "cap build android --release",
    "postbuild": "node ./scripts/notify-completion.js"
  }
}
  • prebuild y postbuild: Utiliza estos para tareas como configurar el entorno o enviar notificaciones cuando se complete la compilación.
  • build:platform: Comandos específicos de plataforma para compilar aplicaciones de Android o iOS.

Puedes llevar la automatización aún más lejos agregando hooks de compilación.

Configuración de Hooks de Compilación

Para un control más avanzado, utiliza hooks de compilación para ejecutar code personalizados en puntos específicos del proceso de compilación. Aquí tienes un ejemplo de configuración en capacitor.config.ts:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.app',
  plugins: {
    CapacitorHooks: {
      beforeBuild: async () => {
        console.log('Running pre-build tasks...');
        // Add your pre-build tasks here
      },
      afterBuild: async () => {
        console.log('Running post-build tasks...');
        // Add your post-build tasks here
      }
    }
  }
};

export default config;

Con hooks de compilación, puedes:

  • Verifique los requisitos antes de que comience la compilación
  • Transforme activos durante el proceso
  • Active notificaciones en puntos clave
  • Actualice los números de versión automáticamente
  • Ejecuta pruebas automatizadas de manera fluida

Esta aproximación le da mayor flexibilidad y control sobre todo el ciclo de compilación.

Personalización de compilación avanzada

Al trabajar en proyectos más grandes, afinar su proceso de compilación puede hacer una gran diferencia. Aquí está cómo manejar compilaciones específicas de entorno y personalizaciones de plataforma de manera efectiva.

Variables de entorno

Establezca variables de entorno creando archivos separados para cada entorno: .env Luego, configure su script de compilación para cargar el archivo apropiado según el entorno:

  • .env.development
  • .env.staging
  • .env.production

Entonces, configure su script de compilación para cargar el archivo apropiado según el entorno:

import { defineConfig } from '@capacitor/cli';

export default defineConfig({
  ios: {
    buildConfig: {
      environment: process.env.BUILD_ENV || 'development',
      configurations: {
        development: {
          signing: {
            debug: true,
            automaticProvisioning: true
          }
        },
        production: {
          signing: {
            release: true,
            provisioningProfile: 'dist/profile.mobileprovision'
          }
        }
      }
    }
  }
});

Puede ajustar aún más estos ajustes para que se adapten a las especificaciones de la plataforma.

Edición de plataforma

Para personalizar las compilaciones para Android e iOS, utilice la siguiente estructura:

const platformConfig = {
  android: {
    buildType: process.env.BUILD_TYPE || 'debug',
    keystoreConfig: {
      path: process.env.KEYSTORE_PATH,
      password: process.env.KEYSTORE_PASSWORD,
      alias: process.env.KEYSTORE_ALIAS
    }
  },
  ios: {
    scheme: process.env.APP_SCHEME || 'App',
    xcodePreferences: {
      automaticSigning: false,
      developmentTeam: process.env.DEVELOPMENT_TEAM
    }
  }
};

Estas configuraciones le permiten personalizar las compilaciones para cada plataforma, garantizando una implementación más suave.

CaracterísticaAndroidiOS
Símbolos de depuraciónProGuard archivos de mapaarchivos dSYM
Variantes de compilacióndebug, release, pruebasdebug, release
Code FirmaAdministración de keystoreAdministración de perfiles de provisión
Administración de activosoptimización de res/drawableCatálogos de activos

Consejos adicionales para optimizar tus compilaciones incluyen:

  • Usar actualizaciones parciales para ahorrar tiempo durante las implementaciones
  • Configurando el seguimiento de errores para identificar rápidamente problemas
  • Creando sistemas de canales para pruebas de versiones beta
  • Habilitando la cifrado de extremo a extremo para una distribución segura

Cuando se combina con herramientas como Capgo para análisis y actualizaciones seguras, estas técnicas te dan más control sobre tu proceso de implementación [1].

Problemas de Script de Construcción & Soluciones

Cuando se trabaja con configuraciones de construcción personalizadas, abordar errores rápidamente es crucial para mantener el proceso de construcción en funcionamiento

Solución de Problemas Comunes

Muchos problemas de script de construcción provienen de problemas de configuración de entorno o dependencias. Aquí’s cómo abordar algunos de los más comunes:

Variables de Entorno Faltantes

Si se encuentra con un error como este:

error: Cannot find environment configuration for BUILD_ENV

Puede solucionarlo creando un .env.local archivo en el directorio raíz de tu proyecto. Aquí’s un ejemplo:

BUILD_ENV=development
CAPACITOR_PLATFORM=ios
BUILD_TYPE=debug

Fallas de Construcción Específicas de Plataforma

Para errores de firma de Android, utilice este comando:

npx cap build android --keystorePassword=$KEYSTORE_PASSWORD --keystoreAlias=$KEYSTORE_ALIAS

Para problemas con el perfil de provisión de iOS, intente esto:

npx cap build ios --configuration=release --type=development
Tipo de errorCausa comúnSolución
Configuración de firmaDetalles del keystore faltantesEstablecer KEYSTORE_PATH y credenciales
Entorno de compilaciónVariables no definidasCrear archivos específicos de plataforma .env Crear archivos específicos de plataforma
DependenciasIncompatibilidades de versiónActualizar package.json y sincronizar

Después de aplicar las correcciones, asegúrese de que sus cambios sean sólidos ejecutando pruebas de compilación exhaustivas.

Pruebas de scripts de compilación

Una vez que se resuelvan los errores, valide sus scripts de compilación con estos pasos:

  • Verificación automática: Ejecute comandos clave para confirmar que el proceso de compilación funciona como se espera.
npm run build
npx cap sync
npx cap copy
  • Validación del entorno: Verifique las variables de entorno faltantes antes de iniciar la compilación.
const requiredVars = ['BUILD_ENV', 'KEYSTORE_PATH'];
requiredVars.forEach(varName => {
  if (!process.env[varName]) {
    throw new Error(`Missing required env var: ${varName}`);
  }
});
  • Depuración de scripts de compilación: Agregue scripts detallados para capturar posibles problemas durante la compilación.
{
  "scripts": {
    "build:debug": "NODE_ENV=development npx cap build --verbose",
    "build:release": "NODE_ENV=production npx cap build --verbose"
  }
}

Consejos adicionales para la prueba:

  • Utilice contenedores de Docker para aislar las compilaciones. Validar archivos de configuración antes de iniciar el proceso.
  • Pruebe con varias versiones de
  • Node.js . Confirme que se cumplen los requisitos específicos de la plataforma.
  • Mantenga un ojo en el rendimiento de la compilación para posibles mejoras.
  • __CAPGO_KEEP_0__

Capgo Construye Características

Capgo Panel de Control de Actualizaciones en Tiempo Real

Capgo lleva los scripts de construcción al siguiente nivel con la implementación automática, mejorando la eficiencia y simplificando el proceso.

Actualizaciones de Aplicaciones Rápidas

Capgo demuestra una impresionante capacidad de actualización:

  • 95% de los usuarios activos reciben actualizaciones dentro de 24 horas.
  • 82% de éxito para la entrega de actualizaciones a nivel mundial.
  • Un tiempo de respuesta promedio de API de 434ms a nivel global.

La plataforma utiliza actualizaciones parciales, lo que significa que solo se descargan los cambios. Esta aproximación reduce el uso de banda y acelera el proceso de actualización. Además, todo el proceso de construcción está completamente automatizado, lo que ahorra tiempo y esfuerzo.

Automatización de Construcción

Capgo se integra de manera fluida con las principales plataformas CI/CD, ofreciendo una variedad de integraciones:

Plataforma CI/CDCaracterísticas de IntegraciónBeneficios
GitHub AccionesConstrucción automática, Desencadenantes de despliegueDespliegue continuo
Automatización de flujo de trabajo de GitLab CIControl de versiones, Automatización de flujo de trabajoFlujo de trabajo simplificado
JenkinsFlujos de trabajo personalizados, Hooks de construcciónEscalable para empresas

Configurar un proceso de compilación automático suele costar alrededor de $300 por mes, lo cual es mucho más asequible en comparación con soluciones tradicionales que pueden llegar a $6,000 anualmente.

Estándares de seguridad

Capgo prioriza la seguridad con un marco robusto que incluye:

  • Encriptación de extremo a extremo para paquetes de actualización.
  • Gestión de claves segura.
  • Cumplimiento con las directrices de Apple y Google.

Características de control de versiones

  • Opciones de rollback instantáneo.
  • Seguimiento de versiones de despliegue.
  • Gestión de canales de actualización para lanzamientos etapa.

Este marco de seguridad ha sido sometido a pruebas rigurosas en cientos de aplicaciones empresariales. Para los equipos que necesitan seguridad adicional, Capgo también ofrece soluciones autoadministradas con configuraciones personalizables.

El sistema de canales de Capgo permite una distribución flexible de actualizaciones. Los desarrolladores pueden dirigirse a grupos de usuarios específicos con diferentes versiones, perfecto para pruebas de beta o lanzamientos graduales.

Resumen

Visión general de los pasos de construcción

Los scripts de construcción personalizados permiten despliegues automatizados y consistentes aprovechando las llamadas de hook de construcción, variables de entorno y comandos específicos de plataforma. Estos procesos crean una base sólida para las mejoras de despliegue posibles con Capgo.

Beneficios de Capgo

Capgo simplifica el despliegue, habiendo entregado con éxito más de 23,5 millones de actualizaciones en 750 aplicaciones de producción. [1]Su sistema de actualizaciones parciales reduce tanto el uso de banda como el tiempo de despliegue.

La plataforma proporciona actualizaciones rápidas, optimización de rendimiento global, cifrado de extremo a extremo para la seguridad y un sistema de distribución flexible basado en canales. Este conjunto de configuración apoya actualizaciones dirigidas, pruebas de beta y cumplimiento con las directrices de las tiendas de aplicaciones mientras mantiene un marco de seguridad sólido.

Actualizaciones en vivo para aplicaciones Capacitor

Cuando haya un error en la capa web en vivo, 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 que los cambios nativos siguen en el camino de revisión normal.

Comience ahora

Últimas noticias de nuestro Blog

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