Zum Hauptinhalt springen

Build-Scripts mit Capacitor CLI anpassen

Erfahre, wie du deine Build-Scripts mit Capacitor CLI anpasst, um effiziente Deployments und maßgeschneiderte App-Updates über alle Plattformen hinweg zu ermöglichen.

So passt du Build-Scripts mit Capacitor CLI Capgo an – Blog-Illustration

Capacitor Mit CLI kannst du den Build-Prozess deiner App für iOS, Android und Web-Plattformen individuell gestalten. Durch das Anpassen der Build-Scripts kannst du:

  • Updates beschleunigen: Änderungen sofort pushen, ohne auf den App Store zu warten.
  • Deployments kontrollieren: Updates zurückrollen oder gezielt bestimmte Nutzergruppen ansprechen.
  • App absichern: Nutze Verschlüsselung, um Updates zu schützen.
  • Builds optimieren: Einstellungen an die jeweilige Plattform anpassen.

Kurzer Überblick über die wichtigsten Features:

  • Konfigurationsdateien: Nutze capacitor.config.json und package.json um Build-Einstellungen zu verwalten.
  • Eigene Scripts: Prebuild- und Postbuild-Tasks für Automatisierung hinzufügen.
  • Build-Hooks: Führe code in bestimmten Phasen des Build-Prozesses aus.
  • Umgebungsvariablen: Vereinfache umgebungsspezifische Builds mit .env Dateien.

Capgo, ein Deployment-Tool, verbessert diesen Prozess mit automatisierte Updates, Version-Tracking und globale Performance-Optimierung. Lies weiter, um zu erfahren, wie du deine Build-Scripts für maximale Effizienz einrichtest und anpasst.

Wir präsentieren Capacitor Konfigurieren

Capacitor Framework-Dokumentations-Website

Standard-Buildprozess in Capacitor

Um den Buildprozess effektiv anzupassen, musst du verstehen, wie Capacitor standardmäßig vorgeht. Im Folgenden analysieren wir den Capacitor CLI Buildprozess und die wichtigsten Konfigurationsdateien.

Standard-Buildschritte

Capacitor nutzt einen schrittweisen Prozess, um deine Web-App in plattformspezifische Builds zu verwandeln. Das passiert während des Standard-Buildprozesses:

Phase Beschreibung Ausgabe
Web-Build Kompiliert Web-Assets mit deinen Framework-Tools Optimiertes Web-Bundle
Assets kopieren Verschiebt Web-Assets in native Plattform-Ordner Plattformspezifische Asset-Verzeichnisse
Native Build Führt plattformspezifische Build-Commands aus Deployment-bereite Binaries
Verifizierung Prüft Build-Integrität und Abhängigkeiten Build-Status und Warnungen

Wichtige Config-Dateien

Zwei zentrale Konfigurationsdateien bestimmen, wie Capacitor deine Builds verarbeitet:

capacitor.config.json
Dies ist die zentrale Konfigurationsdatei für dein Capacitor Projekt. Sie legt wichtige Parameter für deine Builds fest:

{
  "appId": "com.example.app",
  "appName": "MyApp",
  "webDir": "dist",
  "bundledWebRuntime": false,
  "plugins": {
    "SplashScreen": {
      "launchShowDuration": 3000
    }
  }
}
  • appId: Eine eindeutige ID für deine App.
  • appName: Der Name deiner App.
  • webDir: Gibt an, wo Capacitor nach den Web-Assets suchen soll (z. B. dist).
  • plugins: Ermöglicht die Konfiguration von Plugin-spezifischen Einstellungen, wie z. B. SplashScreen-Optionen.

package.json-
Diese Datei enthält Build-Scripts und Abhängigkeiten, die den Build-Prozess beeinflussen:

{
  "scripts": {
    "build": "npm run build:web && cap sync",
    "build:web": "vite build",
    "cap:build": "cap build"
  }
}
  • Der webDir Einstellung in capacitor.config.json sagt Capacitor, wo die kompilierten Web-Assets für die Native Builds zu finden sind.
  • Nachdem du Änderungen an capacitor.config.json, musst du ausführen cap sync to ensure your native projects are updated.

Als Nächstes schauen wir uns an, wie du diese Einstellungen anpassen kannst, um deine Builds noch weiter zu individualisieren.

Build-Scripts anpassen

Du kannst den Standard-Build-Prozess von Capacitor anpassen, um ihn besser auf deine Projektanforderungen abzustimmen. So geht's:

Einstellungen der Config-Datei

Du kannst den Build-Prozess anpassen, indem du die capacitor.config.json Datei. Hier ist ein Beispiel für die Konfiguration:

{
  "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
  }
}

Hier sind einige wichtige Einstellungen, die du ändern kannst:

  • webDir: Gibt an, wo sich deine kompilierten Web-Assets befinden.
  • server: Konfiguriert den Development-Server, einschließlich Hostname und Navigationsrechten.
  • android/ios: Ermöglicht plattformspezifische Build-Einstellungen, wie z. B. Keystore-Details für Android oder Provisioning-Optionen für iOS.

Erstellen von NPM Scripts

Um deinen Workflow zu optimieren, füge benutzerdefinierte NPM Scripts zu deiner package.json Datei hinzu. Hier ist ein Beispiel:

{
  "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 und postbuild: Nutze diese für Aufgaben wie das Setup der Umgebung oder das Senden von Benachrichtigungen nach Abschluss des Builds.
  • build:platform: Plattformspezifische Befehle zum Bauen von Android- oder iOS-Apps.

Mit Build Hooks kannst du die Automatisierung noch weiter vorantreiben.

Build Hooks Setup

Für mehr Kontrolle kannst du Build Hooks nutzen, um benutzerdefinierte code zu bestimmten Zeitpunkten im Build-Prozess auszuführen. Hier ist ein Beispiel-Setup in 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;

Mit Build Hooks kannst du:

  • Anforderungen vor dem Build validieren
  • Assets während des Prozesses transformieren
  • Benachrichtigungen an wichtigen Punkten auslösen
  • Versionsnummern automatisch aktualisieren
  • Automatisierte Tests nahtlos ausführen

Dieser Ansatz bietet dir mehr Flexibilität und Kontrolle über den gesamten Build-Lifecycle.

Erweiterte Build-Anpassung

Bei größeren Projekten kann die Feinabstimmung des Build-Prozesses einen großen Unterschied machen. So lassen sich umgebungsspezifische Builds und Plattform-Anpassungen effektiv handhaben.

Umgebungsvariablen

Richte Umgebungsvariablen ein, indem du separate .env Dateien für jede Umgebung erstellst:

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

Konfiguriere dann dein Build-Script so, dass die passende Datei basierend auf der Umgebung geladen wird:

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'
          }
        }
      }
    }
  }
});

Du kannst diese Einstellungen weiter an plattformspezifische Anforderungen anpassen.

Plattformspezifische Builds

Um Builds für Android und iOS anzupassen, verwende diese Struktur:

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
    }
  }
};

Mit diesen Konfigurationen kannst du Builds für jede Plattform optimieren und so reibungslose Deployments sicherstellen.

Funktion Android iOS
Debug-Symbole ProGuard Mapping-Dateien dSYM-Dateien
Build-Varianten debug, release, staging Debug, Release
Code Signierung Keystore-Management Provisioning-Profile
Asset-Management res/drawable-Optimierung Asset Catalogs

Weitere Tipps zur Build-Optimierung:

  • Partial Updates für schnellere Deployments nutzen
  • Error Tracking für schnelle Fehleranalyse einrichten
  • Channel-Systeme für Beta-Versionen erstellen
  • Ende-zu-Ende-Verschlüsselung für sichere Distribution aktivieren

In Kombination mit Tools wie Capgo für Analytics und sichere Updates bieten diese Techniken mehr Kontrolle über deinen Deployment-Prozess [1].

Build-Script-Probleme & Lösungen

Bei der Arbeit mit benutzerdefinierten Build-Konfigurationen ist eine schnelle Fehlerbehebung entscheidend, um einen reibungslosen Build-Prozess zu gewährleisten.

Häufige Fehler beheben

Viele Build-Skript-Probleme entstehen beim Setup der Umgebung oder durch Abhängigkeitsprobleme. So behebst du einige häufige Fehler:

Fehlende Umgebungsvariablen

Wenn du einen Fehler wie diesen bekommst:

error: Cannot find environment configuration for BUILD_ENV

Du kannst ihn beheben, indem du eine .env.local Datei im Root-Verzeichnis deines Projekts erstellst. Hier ist ein Beispiel:

BUILD_ENV=development
CAPACITOR_PLATFORM=ios
BUILD_TYPE=debug

Plattformspezifische Build-Fehler

Bei Android-Signing-Fehlern nutze diesen Befehl:

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

Bei Problemen mit iOS-Provisioning-Profilen probiere dies:

npx cap build ios --configuration=release --type=development
Fehlertyp Häufige Ursache Lösung
Signing-Konfiguration Fehlende Keystore-Details Setzen Sie KEYSTORE_PATH und Zugangsdaten
Build-Umgebung Undefinierte Variablen Plattformspezifisch erstellen .env Dateien
Abhängigkeiten Versionskonflikte Update package.json und Sync

After applying fixes, ensure your changes are solid by running thorough build tests.

Build-Skripte testen

Sobald die Fehler behoben sind, validiere deine Build-Skripte mit diesen Schritten:

  • Automatisierte Verifizierung: Führe wichtige Commands aus, um zu bestätigen, dass der Build-Prozess wie erwartet läuft.
npm run build
npx cap sync
npx cap copy
  • Umgebungs-Validierung: Prüfe auf fehlende Umgebungsvariablen, bevor du den Build startest.
const requiredVars = ['BUILD_ENV', 'KEYSTORE_PATH'];
requiredVars.forEach(varName => {
  if (!process.env[varName]) {
    throw new Error(`Missing required env var: ${varName}`);
  }
});
  • Build-Skript Debugging: Füge detaillierte Skripte hinzu, um potenzielle Probleme während des Builds abzufangen.
{
  "scripts": {
    "build:debug": "NODE_ENV=development npx cap build --verbose",
    "build:release": "NODE_ENV=production npx cap build --verbose"
  }
}

Zusätzliche Tipps zum Testen:

  • Nutzt Docker Container, um Builds zu isolieren.
  • Konfigurationsdateien vor Prozessstart validieren.
  • Mit verschiedenen Node.js versions.
  • Plattformspezifische Anforderungen prüfen.
  • Behalte die Build-Performance im Auge, um mögliche Optimierungen zu finden.

Capgo Build-Features

Capgo Live Update Dashboard-Interface

Capgo hebt Build-Scripts auf das nächste Level durch automatisiertes Deployment, was die Effizienz steigert und Prozesse vereinfacht.

Schnelle App-Updates

Die Update-Performance von Capgo ist beeindruckend:

  • 95 % der aktiven Nutzer Updates werden innerhalb von 24 Stunden bereitgestellt.
  • 82 % Erfolgsrate bei der weltweiten Update-Auslieferung.
  • Eine durchschnittliche API Antwortzeit von 434 ms weltweit.

Die Plattform nutzt Partial Updates, sodass nur die Änderungen heruntergeladen werden. Das spart Bandbreite und beschleunigt den Update-Prozess. Zudem ist der gesamte Build-Prozess vollautomatisiert, was Zeit und Aufwand spart.

Build-Automatisierung

Capgo lässt sich nahtlos in gängige CI/CD-Plattformen integrieren und bietet verschiedene Möglichkeiten zur Anbindung:

CI/CD-Plattform Integrations-Features Vorteile
GitHub Aktionen Automatisierte Builds, Deploy-Trigger Continuous Deployment
GitLab CI Pipeline-Automatisierung, Versionskontrolle Optimierter Workflow
Jenkins Custom Workflows, Build-Hooks Skalierbar für Unternehmen

Die Einrichtung eines automatisierten Builds kostet typischerweise etwa $300 pro Monat, was deutlich kostengünstiger ist als herkömmliche Lösungen, die bis zu $6.000 jährlich.

Sicherheitsstandards

Capgo setzt auf Sicherheit mit einem robusten Framework, das Folgendes bietet:

  • Ende-zu-Ende-Verschlüsselung für Update-Pakete.
  • Sicheres Key-Management.
  • Compliance mit den Richtlinien von Apple und Google.

Version-Control-Features

  • Sofortige Rollback-Optionen.
  • Tracking der Deployment-Versionen.
  • Update-Channel-Management für gestaffelte Releases.

Dieses Sicherheits-Framework wurde in hunderten Enterprise-Apps rigoros getestet. Für Teams mit höherem Sicherheitsbedarf bietet Capgo zudem Self-Hosted-Lösungen mit anpassbaren Konfigurationen an.

Das Channel-System von Capgo macht die Update-Verteilung flexibel. Entwickler können gezielt bestimmte Nutzergruppen mit unterschiedlichen Versionen ansprechen – ideal für Beta-Tests oder schrittweise Rollouts.

Zusammenfassung

Übersicht der Build-Schritte

Eigene Build-Skripte ermöglichen automatisierte und konsistente Deployments durch Build-Hooks, Umgebungsvariablen und plattformspezifische Befehle. Diese Prozesse bilden das Fundament für Deployment-Optimierungen durch Capgo.

Capgo Vorteile

Capgo vereinfacht das Deployment und hat bereits über 23,5 Millionen Updates für 750 Produktions-Apps bereitgestellt [1]. Sein Partial-Update-System reduziert sowohl die Bandbreite als auch die Deployment-Zeit.

Die Plattform bietet schnelle Updates, globale Performance-Optimierung, End-to-End-Verschlüsselung für maximale Sicherheit und ein flexibles, channel-basiertes Distributionssystem. Dieses Setup unterstützt gezielte Updates, Beta-Tests und die Einhaltung von App Store Guidelines bei gleichzeitig hohem Sicherheitsstandard.

Weiterlesen unter: How to Customize Build Scripts with Capacitor CLI

Wenn du es nutzt Build-Scripts mit Capacitor CLI anpassen um CI/CD-Automatisierung zu planen, verbinde es mit Capgo CI/CD für den Produkt-Workflow in Capgo CI/CD, Capgo Native Builds optimieren für den Produkt-Workflow in Capgo Native Builds, Capgo Integrationen für den Produkt-Workflow in Capgo Integrations, CI/CD-Integration für die Implementierungsdetails in der CI/CD-Integration und GitHub Actions-Integration für die Implementierungsdetails in der GitHub Actions-Integration.

Live-Updates für Capacitor-Apps

Wenn ein Bug im Web-Layer live ist, liefere den Fix über Capgo aus, statt Tage auf die App-Store-Freigabe zu warten. Nutzer bekommen das Update im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Neues aus unserem Blog

Capgo gibt dir die besten Insights, um eine wirklich professionelle Mobile App zu erstellen.