Zum Hauptinhalt springen

Version-Tagging in Capacitor Apps

Erfahre alles Wichtige über Version Tagging in Capacitor Apps – inklusive Best Practices für Updates, Synchronisation und Automatisierung.

Version-Tagging in Capacitor Apps

Version Tagging ist entscheidend für das Management von Capacitor Apps. Es ermöglicht reibungslose Updates, trackt Änderungen und erhöht die Zuverlässigkeit über iOS, Android und Web-Plattformen hinweg. Hier ein kurzer Überblick:

  • Warum das wichtig ist: Trackt Updates, ermöglicht Rollbacks und sorgt für stabile Deployments.
  • Semantische Versionierung: Nutze MAJOR.MINOR.PATCH um Breaking Changes, neue Features oder Bugfixes anzuzeigen.
  • Plattformübergreifende Synchronisation: Align version numbers in package.json, iOS Info.plist, und Android build.gradle.
  • Automatisierung: Updates automatisieren mit npm Skripten und CI/CD-Tools.
  • Capgo Live Updates: Tools wie Capgo Updates innerhalb von 24 Stunden an 95 % der Nutzer ausliefern.
  • Beta-Management: Nutze strukturierte Channels für Alpha-, Beta- und Produktionsversionen.

Schneller Vergleich

Funktion Zweck Beispiel
Semantische Versionierung Änderungen klar nachverfolgen 1.2.3 → 2.0.0
Versionen synchronisieren Plattformübergreifend abgleichen npx cap sync
Automatisierung Beschleunigt Versions-Updates npm version patch
Capgo Live Updates Schnelle Nutzerakzeptanz 95 % in 24 Stunden mit Capgo
Beta-Channels Kontrollierte Testphasen 1.3.0-beta.1

Version-Tagging vereinfacht App-Updates, hält Nutzer zufrieden und sorgt dafür, dass Entwickler Releases effektiv verwalten können.

So konfigurierst du AUTOMATISCH dein Capacitor Projekt ⚡️

Capacitor Framework-Dokumentations-Website

Versions-Setup in Capacitor

Folge diesen Schritten für ein konsistentes Versionsmanagement über alle Plattformen deiner Capacitor App hinweg.

Version festlegen in package.json

Der package.json Diese Datei dient als Hauptquelle für die Versionsdetails deiner App. Hier ist ein Beispiel für die Einrichtung:

{
  "name": "your-app-name",
  "version": "1.2.3",
  "private": true,
  "dependencies": {
    "@capacitor/core": "5.5.0",
    "@capacitor/ios": "5.5.0",
    "@capacitor/android": "5.5.0"
  }
}

Nutze beim Aktualisieren der Versionsnummer die SemVer-Regeln (Semantic Versioning):

  • Major-Version (1.x.x): Führt Breaking Changes ein.
  • Minor-Version (x.2.x): Fügt neue Features hinzu, die abwärtskompatibel sind.
  • Patch-Version (x.x.3): Behebt Bugs oder bringt kleine Verbesserungen.

Plattform-Versionen synchron halten

Für ein reibungsloses App-Deployment ist es wichtig, die Versionsnummern über alle Plattformen hinweg abzustimmen. Jede Plattform nutzt eine eigene Konfigurationsdatei für das Versioning:

Plattform Konfigurationsdatei Versions-Key
iOS Info.plist CFBundleShortVersionString
Android build.gradle versionName
Web package.json version

Nachdem du die Version in package.json, nutze diesen Befehl, um die Änderungen mit den nativen Plattform-Konfigurationen zu synchronisieren:

npx cap sync

Versionsverwaltung mit Capacitor CLI

Capacitor CLI bietet hilfreiche Commands für die Versionsverwaltung:

# Check the current version of Capacitor
npx cap --version

# Update Capacitor core and platform dependencies
npm install @capacitor/core@latest
npm install @capacitor/ios@latest
npm install @capacitor/android@latest

# Sync version changes to native platforms
npx cap sync

Wenn du Capacitor CLI aktuell hältst, stellst du die Kompatibilität mit versionsspezifischen Features sicher und reduzierst mögliche Versionskonflikte. Mit diesen Schritten behältst du eine korrekte Versionierung in deiner App bei.

Semantic-Version-Setup

Semantic-Version-Grundlagen

Semantische Versionierung (SemVer) verwendet das Format MAJOR.MINOR.PATCH, wobei jeder Teil eine bestimmte Art von Änderung angibt:

Versionskomponente Zweck
MAJOR Führt Breaking Changes an der API ein
MINOR Fügt neue Features hinzu, die abwärtskompatibel sind
PATCH Behebt Bugs oder verbessert die Performance ohne Breaking Changes

Dieses System stellt sicher, dass Entwickler Updates klar kommunizieren können und dabei die Kompatibilität zwischen App-Versionen erhalten bleibt. Zum Beispiel signalisiert der Wechsel von 1.2.3 zu 2.0.0 Major-Updates mit Breaking Changes, die eine sorgfältige Planung erfordern.

Wann Versionsnummern aktualisiert werden sollten

So entscheidest du, welche Versionsnummer du aktualisierst:

Update-Typ Wann verwenden Beispiel für Versionsänderung
Großes Update Für Breaking Changes an API oder große UI-Redesigns 1.2.3 → 2.0.0
Kleines Update Beim Einführen neuer Features oder wenn Features als deprecated markiert werden 1.2.3 → 1.3.0
Patch-Update Für Bugfixes oder kleine Performance-Optimierungen 1.2.3 → 1.2.4

„Wir setzen auf agile Entwicklung und @Capgo ist geschäftskritisch, um unseren Nutzern kontinuierlich Updates zu liefern!“ - Rodrigo Mantica [1]

Schauen wir uns nun an, wie man diese Updates automatisiert, um das Release-Management zu vereinfachen.

Automatisierung von Versions-Updates

Die Automatisierung von Versions-Updates kann Zeit sparen und Fehler in deinem Capacitor Projekt reduzieren. So richtest du es ein:

  1. NPM Versions-Skripte

Füge diese Skripte deiner package.json Datei hinzu, um Versions-Updates einfach zu verwalten:

{
  "scripts": {
    "version:patch": "npm version patch",
    "version:minor": "npm version minor",
    "version:major": "npm version major"
  }
}
  1. CI/CD-Integration
    Integriere Versions-Updates in deine CI/CD-Pipeline. Capgo unterstützt Tools wie GitHub Aktionen, GitLab CI, und Jenkins, was die Automatisierung des Prozesses vereinfacht.

„@Capgo ist ein Must-have für Entwickler, die durch das Umgehen langwieriger Bugfix-Reviews produktiver werden wollen.“ - Bessie Cooper [1]

Methoden zum Version-Tagging

Git-Versions-Tags

Git Version Tags sind ein zuverlässiger Weg, um Capacitor App-Releases zu tracken. Um klare und informative Tags zu erstellen, kombiniere Semantic Versioning mit einer kurzen Beschreibung:

git tag -a v1.2.3 -m "Release v1.2.3: Added offline mode support"

Um die Konsistenz im Team zu wahren, nutze ein standardisiertes Tagging-Format:

Tag-Komponente Format Beispiel
Release-Version v[MAJOR].[MINOR].[PATCH] v1.2.3
Beta-Release v[VERSION]-beta.[NUMBER] v1.2.3-beta.1
Release Candidate v[VERSION]-rc.[NUMBER] v1.2.3-rc.2

Build-Nummer-Integration

Build-Nummern helfen dabei, einzelne Builds innerhalb jeder Version zu tracken. Erhöhe sowohl bei iOS als auch bei Android die Build-Nummer bei jeder Einreichung:

{
  "ios": {
    "version": "1.2.3",
    "build": "10234"
  },
  "android": {
    "version": "1.2.3",
    "versionCode": "10234"
  }
}

Die Build-Nummer sollte immer steigen, auch wenn die Version gleich bleibt. So wird jede App-Store-Einreichung eindeutig identifiziert, während die Versionierung für Nutzer klar bleibt.

Beta-Version-Management

Das Verwalten von Beta-Versionen erfordert einen strukturierten Prozess, um Test-Builds zu verteilen. Capgo Channel-System vereinfacht das mit folgenden Schritten:

  1. Channel-Setup

Erstelle separate Channels für jede Testphase:

{
  "beta": {
    "version": "1.3.0-beta.1",
    "users": "beta-testers"
  },
  "production": {
    "version": "1.2.3",
    "users": "all"
  }
}
  1. Nutzerzugriff steuern

Richte Berechtigungen ein, um zu kontrollieren, wer Zugriff auf Beta-Versionen bekommt. So erhalten nur freigegebene Tester Beta-Builds, während Nutzer in der Produktion stabile Releases bekommen.

  1. Versionsfortschritt

Nutze ein klares Versionssystem, um die Entwicklungsphasen zu tracken:

Phase Versionsformat Zweck
Alpha 1.3.0-alpha.1 Internes Testen
Beta 1.3.0-beta.1 Externe Testgruppe
RC (Release Candidate) 1.3.0-rc.1 Abschließende Tests vor dem Release
Produktion 1.3.0 Öffentlicher Release

Dieser Ansatz gewährleistet gründliche Tests und reibungslose Übergänge zwischen den Entwicklungsphasen, wodurch das Version-Tracking während des gesamten Prozesses organisiert und transparent bleibt.

App-Version anzeigen

Präzise Versionsinformationen in deiner App anzuzeigen ist entscheidend, um Nutzer auf dem Laufenden zu halten und Updates effektiv zu verwalten.

Version mit Capacitor abrufen

Du kannst Versionsdetails mit Capacitor über diesen code abrufen:

import { App } from '@capacitor/app';

async function getAppInfo() {
  const info = await App.getInfo();
  console.log(`Version: ${info.version}`);
  console.log(`Build: ${info.build}`);
}

Für einen effizienteren Ansatz erstelle eine wiederverwendbare Funktion:

export const getVersionString = async () => {
  const info = await App.getInfo();
  return `v${info.version} (${info.build})`;
};

Diese Funktion vereinfacht das Anzeigen der Versionsinformationen in der Benutzeroberfläche deiner App.

UI-Implementierung der Version

Hier ist ein Beispiel, wie du die Versionsanzeige in eine Settings-Komponente integrierst:

@Component({
  selector: 'app-settings',
  template: `
    <div class="version-info">
      <span>Version: {{ versionString }}</span>
      <span *ngIf="updateAvailable" class="update-badge">
        Update Available
      </span>
    </div>
  `
})

Typische Orte für Versionsdetails sind:

Ort Zweck Implementierung
Einstellungen Vollständige Version und Build Detaillierte Versionsinfos
Über uns-Seite Einfache Versionsanzeige Nur Versionsnummer
App-Footer Minimale Anzeige Verkürzte Versions-String

Neben der Anzeige von Versionsinfos kann die Integration eines Update-Check-Systems die User Experience verbessern.

Update-Check-System

Ein Update-Check-System stellt sicher, dass Nutzer Zugriff auf die neuesten Features und Fixes haben. Capgo bietet Echtzeit-Benachrichtigungen und kontrollierte Update-Channels, um diesen Prozess zu steuern:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

async function checkForUpdates() {
  const current = await CapacitorUpdater.current();
  const latest = await CapacitorUpdater.getLatest();

  if (current.version !== latest.version) {
    await CapacitorUpdater.download({
      version: latest.version
    });
  }
}

„Wir setzen auf agile Entwicklung und @Capgo ist geschäftskritisch, um unseren Nutzern kontinuierlich Updates zu liefern!“ - Rodrigo Mantica [1]

Du kannst auch eine Benachrichtigung für Nutzer hinzufügen, wie zum Beispiel diese:

@Component({
  template: `
    <update-modal 
      [version]="newVersion"
      [features]="updateFeatures"
      (updateNow)="performUpdate()"
    />
  `
})

Für Enterprise-Apps ermöglicht das Channel-System von Capgo die gezielte Steuerung der Update-Verteilung:

Channel Update-Typ Target Audience
Produktion Stabile Releases Alle Nutzer
Beta Pre-Release-Versionen Testgruppe
Kritisch Notfall-Fixes Betroffene Nutzer

Diese Methode sichert die App-Stabilität und trackt die Update-Performance über das Analytics-Dashboard von Capgo.

Lösungen für das Versionsmanagement

Schauen wir uns fortgeschrittene Lösungen für ein effektives App-Versionsmanagement genauer an.

Optionen für Version-Tools

Bei der Wahl von Version-Control-Tools ist es wichtig, auf solche zu setzen, die Updates vereinfachen, dein code absichern und sowohl App Store Releases als auch Live Updates unterstützen.

Hier sind die wichtigsten Features im Überblick:

Funktion Bedeutung Auswirkung
Capgo Live Updates Kritisch Minimiert Verzögerungen durch App Store Reviews
Sicherheit Essentiell Schützt Nutzerdaten und die code Integrität
Analytics Wichtig Misst Update-Erfolg und User Adoption
CI/CD-Integration Nützlich Optimiert Deployment-Prozesse
Kosteneffizienz Strategisch Beeinflusst die langfristige Budgetplanung

Ein herausragendes Tool in diesem Bereich ist Capgo, das Funktionen bietet, die speziell für Folgendes entwickelt wurden: Capacitor Apps.

Capgo Version-Control-Features

Capgo Live Update Dashboard-Interface

Capgo bietet robuste Funktionen fürs Versionsmanagement, darunter:

  • 23,5 Mio. erfolgreich ausgelieferte Updates
  • 95 % der Nutzer aktualisieren innerhalb von 24 Stunden
  • 82 % globale Erfolgsrate
  • 434 ms durchschnittliche API-Antwortzeit weltweit

Hier ein Beispiel, wie du Capgo zur Versionskontrolle nutzt:

// Capgo version control example
import { CapacitorUpdater } from '@capgo/capacitor-updater';

const versionControl = {
  async checkVersion() {
    const current = await CapacitorUpdater.current();
    return current.version;
  },

  async deployUpdate(version: string) {
    await CapacitorUpdater.setChannel({
      channel: 'production',
      version: version
    });
  }
};

„Wir testen gerade @Capgo, da Appcenter den Live-Update-Support für Hybrid-Apps eingestellt hat und @AppFlow viel zu teuer ist.“ - Simon Flack [1]

Lösungen für jede Teamgröße

Capgo bietet flexible Pläne für Teams jeder Größe, damit Versionsmanagement skalierbar und effizient bleibt.

Teamgröße Plan Kernfunktionen
Solo-Entwickler Basis-Cloud-Hosting Live Updates, 1.000 MAU
Kleines Team (2-5) Maker-Plan 10.000 MAU, 500 GB Bandbreite
Mittleres Team (6-20) Team-Plan 100.000 MAU, Berechtigungen
Enterprise Individuelles PAYG Unbegrenzte MAU, dedizierter Support

Für größere Teams ermöglicht das Channel-System von Capgo eine präzise Kontrolle über das Version-Deployment:

const enterpriseVersionControl = {
  channels: {
    production: 'stable-releases',
    beta: 'early-access',
    internal: 'development'
  },

  async deployToChannel(channel: string, version: string) {
    await CapacitorUpdater.setChannel({
      channel: channel,
      version: version
    });
  }
};

„Wir setzen auf agile Entwicklung und @Capgo ist geschäftskritisch, um unseren Nutzern kontinuierlich Updates zu liefern!“ - Rodrigo Mantica [1]

Capgo bietet zudem ein Analytics-Dashboard, um die Verbreitungsrate von Versionen zu überwachen und Probleme frühzeitig zu erkennen. Dank integrierter Verschlüsselung und anpassbarer Hosting-Optionen können Teams die Sicherheit gewährleisten, während sie ihre Deployment-Workflows skalieren.

Fazit

Version Tagging zu verstehen ist der Schlüssel zur Vereinfachung von Entwicklungs- und Deployment-Prozessen. Hier ist eine kurze Zusammenfassung der wichtigsten Konzepte und Schritte für den Einstieg.

Wichtigste Erkenntnisse

Version Tagging hilft Entwicklern, reibungslose und zuverlässige Updates zu gewährleisten. Eine ordnungsgemäße Versionskontrolle bietet klare Vorteile:

Vorteil Auswirkung Ergebnis
Sofortige Updates Kürzere Review-Zeiten Schnellere Nutzerakzeptanz [1]
Versionskontrolle Besseres code Management Höhere Erfolgsraten [1]
Update-Tracking Echtzeit-Monitoring Schnellere Fehlerbehebung [1]
Distributionskontrolle Gezielte Rollouts Multi-Plattform-Support

Diese Ergebnisse unterstreichen die Bedeutung effektiver Tools für das Versionsmanagement.

So geht's los

Um diese Vorteile zu nutzen, folge diesen Schritten:

  • Version-Tracking einrichten: Nutze Semantic Versioning in deiner package.json Datei und integriere die nötigen Plugins.
  • Update-Checks hinzufügen: Implementiere Systeme, um Version-Updates zu prüfen und zu tracken.
  • Distribution Channels konfigurieren: Erstelle separate Umgebungen für Production, Beta und Development.

Nutze schließlich ein live update System, um schnelle und sichere Deployments zu garantieren.

Weiterlesen: Version Tagging in Capacitor Apps

Wenn du es nutzt Version-Tagging in Capacitor Apps um Rollbacks und die Versionskontrolle zu planen, verbinde es mit Rollbacks für die Implementierungsdetails in Rollbacks, Version-Targeting für die Implementierungsdetails in Version Targeting, Update-Verhalten für die Implementierungsdetails im Update-Verhalten, Bundle für die Implementierungsdetails im Bundle und Capgo Live Updates für den Produkt-Workflow in Capgo Live Updates.

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.