Zum Hauptinhalt springen

Wie man Semantic Versioning mit Capgo OTA-Updates verwendet

Lernen Sie, wie Sie die Anwendungsausgaben und die Versionskontrolle mit der Semantic Versioning und den OTA-Updates von Capgo für Capacitor-Apps vereinfachen können.

Martin Donadieu

Martin Donadieu

Content-Marketing-Manager

Wie man Semantic Versioning mit Capgo OTA-Updates verwendet

Möchten Sie die App-Aktualisierungen vereinfachen Simplifying app updates und Versionskontrolle? Semantic Versioning (SemVer) kombiniert mit Capgo’s Over-The-Air (OTA)-Updates machen die Verwaltung Capacitor Apps einfacher und schneller. Hier ist, wie es geht:

  • Grundlagen der Semantischen Versionsnummerierung: Versionen verwenden die Formatierung MAJOR.MINOR.PATCH:

    • MAJOR: Für wichtige Änderungen.
    • MINOR: Für neue Funktionen, die rückwärtskompatibel sind.
    • PATCH: Für Bugfixes.
  • Warum SemVer mit Capgo verwenden?

    • Klare Kommunikation über Updates.
    • Intelligente Versionsverwaltung.
    • Vermeiden von Abhängigkeitskonflikten.
    • Gestaltete Releaseplanung.
  • Capgo Einrichtung Schritte:

    1. Installieren Sie den Updater-Plugin von Capgo.
    2. Konfigurieren Sie die Versionsnummer Ihres Apps in capacitor.config.json und anderen Dateien.
    3. Initialisieren Sie mit Ihrem API-Schlüssel.
    4. Verwenden Sie Capgo CLI um Updates zu bündeln und hochzuladen.
  • Versions- und Kanalverwaltung:

    • Verwenden Sie separate Kanäle (z.B. "beta" für Tests, "production" für stabile Releases).
    • Kontrolle über Aktualisierungsrichtlinien (Automatische Aktualisierung von Patches, manuelle Genehmigung für große Änderungen).
    • Rückgängigmachungsoptionen für fehlgeschlagene Updates.
  • Bereitstellungsvorgang:

    • Aktualisieren Sie die Versionsnummern gemäß den SemVer-Regeln.
    • Testen Sie gründlich, bevor Sie deployen.
    • Verwenden Sie CLI-Befehle, um Updates hochzuladen und zu verteilen.

Capgo sichert Updates sicher und zuverlässig an die Benutzer weiter, mit Werkzeugen zur Behandlung von Störungen und zur Aufrechterhaltung der Stabilität. Perfekt für Teams, die CI/CD-Workflows verwenden, um Updates automatisiert zu verwalten.

Schnell-Tipp: Testen Sie Updates immer und verwenden Sie Kanäle, um effektiv gestaffelte Rollouts zu verwalten.

Semantic Versioning | Auf Level bringen

Capgo Einrichtungsanleitung

Capgo Live-Update-Dashboard-Interface

Hier erfahren Sie, wie Sie Capgo für die Verwaltung von OTA-Updates und die Versionskontrolle mit Leichtigkeit einrichten.

Schritte zur ersten Einrichtung

Beginnen Sie mit der Installation des Capgo-Updater-Plugins:

npm install @capgo/capacitor-updater  
npx cap sync

Stellen Sie sicher, dass Ihr capacitor.config.json Datei ein semantisches Versionsformat verwendet:

{ 
  "appId": "com.example.app", 
  "appName": "My App", 
  "version": "1.0.0" 
}

Für ältere Projekte aktualisieren Sie die Versionsdetails in diesen Orten:

  • package.json (suchen Sie nach dem version Feld)
  • android/app/build.gradle (aktualisieren Sie versionName)
  • ios/App/App.xcodeproj/project.pbxproj (aktualisieren Sie CURRENT_PROJECT_VERSION)

Einmal konfiguriert, initialisieren Sie Capgo mit Ihrem API-Schlüssel:

npx @capgo/cli@latest init YOUR_API_KEY

Schnellreferenz-Tabelle:

Setup-Phase Schlüsselaktion Verifizierungs-Schritt
InstallationPlugin installieren und synchronisierenÜberprüfen package.json
KonfigurationVersionen festlegenÜberprüfen in allen Dateien
InitialisierungVerbinden mit API-SchlüsselVerbindung überprüfen
BauenErstes Bundle erstellenUpload erfolgreich bestätigen

Versionskontrolle-Integration

Capgo funktioniert gut mit CI/CD-Plattformen, was automatisierte Updates einfach macht. Unterstützte Plattformen umfassen:

Wenn Sie an lokalen Entwicklungen arbeiten, können Sie die automatischen Updates deaktivieren, indem Sie diese Zeile in Ihre Konfiguration einfügen:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

Dies stellt sicher, dass Capgo Ihre lokalen Änderungen nicht überschreibt. Sobald Ihre Konfiguration fertig ist, laden Sie Ihre erste Version hoch:

npx @capgo/cli@latest bundle upload  
npx @capgo/cli@latest channel set production -s default

Zuletzt informieren Sie das native Plugin über den Gesundheitszustand des Bundles in Ihrem Hauptdatei des Apps:

import { CapacitorUpdater } from '@capgo/capacitor-updater';  
CapacitorUpdater.notifyAppReady();

Diese Einrichtung stellt sicher, dass Ihre App für glatte OTA-Deployments und Versionsverwaltung bereit ist.

Mit semantischer Versionsnummerierung verwenden Sie Capgo

Versionsnummer-Verwaltung

Capgo verwendet semantische Versionsnummerierung (SemVer), um die App-Versionen zu verwalten, formatiert als MAJOR.MINOR.PATCHHier ist, wie es funktioniert:

  • Hauptversion (X.0.0): Erhöhen Sie die MAJOR-Zahl für Änderungen, die die Kompatibilität brechen.
  • Minor-Version (1.X.0): Erhöhen Sie die MINOR-Zahl für neue Funktionen, die kompatibel bleiben.
  • Patch-Version (1.0.X): Erhöhen Sie die PATCH-Zahl für Bug-Fixes, die die Kompatibilität nicht beeinflussen.
VersionstypWann die Versionsnummer erhöht werden sollteAutomatischer Update-Modus
Große Version (X.0.0)For breaking API changesBenötigt manuelle Genehmigung
Kleine Version (1.X.0)Für neue FunktionenKonfigurierbar in Capgo
Patchversion (1.0.X)Für FehlerkorrekturenNormalerweise automatisch

Indem Sie sich an die SemVer-Regeln halten, können Sie die Versionsverwaltung vereinfachen und sicherstellen, dass Updates über Ihre Bereitstellungskanäle glatter verlaufen.

Versionierungsrichtlinien

Capgo ermöglicht Ihnen die effektive Verwaltung von Bereitstellungen, indem Sie unterschiedliche Kanäle für verschiedene Phasen Ihres Workflows einrichten.

  • Kanalbasierte VersionsverwaltungOrganisieren Sie Ihren Bereitstellungsprozess, indem Sie separate Kanäle für die Testung und die Produktion erstellen.

    • Beispiel:
    • Verwenden Sie einen "beta"-Kanal (z.B. 1.2.0-beta) für die Testung neuer Funktionen.
    • Halten Sie einen "Produktion"-Kanal (z.B. 1.2.0) für stabile Releases bereit.
  • Fügen Sie plattform-spezifische Kanäle (z.B. "ios-hotfix" mit der Version 1.2.1) hinzu, wenn Sie plattform-spezifische Probleme angehen.: Control how updates are applied using Capgo’s configuration options. For instance:

    {
      "plugins": {
        "CapacitorUpdater": {
          "disableAutoUpdate": "minor"
        }
      }
    }

    Kontrollieren Sie, wie Updates angewendet werden, mithilfe der Konfigurationsoptionen von __CAPGO_KEEP_0__.

  • Beispiel: Diese Konfiguration stellt sicher, dass Benutzer automatisch Patch-Updates erhalten, während Minor- und Major-Updates eine manuelle Genehmigung erfordern müssen. : Verwenden Sie Vorabversionen, um klare Rückerstattungsoptionen zu erhalten. Diese Vorgehensweise ermöglicht es Ihnen, auf eine vorherige Version zurückzukehren, wenn Probleme auftreten, während die Versionsverwaltung konsistent über alle Kanäle bleibt.

Diese besten Praktiken erleichtern die Verwaltung von Updates, die Testung neuer Funktionen und die Gewährleistung der Stabilität im Bereitstellungsprozess Ihres Apps.

sbb-itb-f9944d2

OTA-Update-Bereitstellung

Sobald Ihr Versionsverwaltungssystem bereit ist, folgen Sie diesen Schritten, um OTA-Updates effektiv zu deployen.

Updatevorbereitung

Beginnen Sie damit, die Version in __CAPGO_KEEP_0__.config.json und capacitor.config.jsonzu aktualisieren. Stellen Sie sicher, dass die Version dem SemVer-Format (MAJOR.MINOR.PATCH) entspricht:

  • Bug-Fix: Die PATCH-Zahl erhöhen (z.B. 1.0.1 → 1.0.2)
  • Neue Funktion: Die MINOR-Zahl erhöhen (z.B. 1.0.0 → 1.1.0)
  • Kritischer Wechsel: Die MAJOR-Zahl erhöhen (z.B. 1.0.0 → 2.0.0)

Sorgfältig testen Sie Ihre Version und bestätigen Sie, dass die App mit dem Server kommuniziert wird, indem Sie notifyAppReady.

Nächste, entscheiden Sie sich für Ihre Update-Strategie. Sie können auswählen:

  • Automatisches Update: Automatisch die Mindestversionserfordernisse durchsetzen.
  • Manuelle Kontrolle: Angabe exakter Versionsanforderungen für Updates.
  • Kanalbasiert: Verwenden Sie Kanäle für Tests und geplante Rollouts.

Capgo CLI Update-Befehle

Verwenden Sie Capgo’s CLI zum Bereitstellen Ihres Updates mit Leichtigkeit. Hier ist, wie Sie es machen:

# Initialize Capgo in your project
npx @capgo/cli@latest init [apikey]

# Upload your update bundle
npx @capgo/cli bundle upload [appId]

# Add a new distribution channel
npx @capgo/cli channel add [channelId] [appId]

Capgo sichert die Bereitstellung mit Ende-zu-Ende-Verschlüsselung und sicheren Schlüsselverwaltung ab.

@Capgo ist eine intelligente Möglichkeit, Hot-code-Pushes (und nicht für all das Geld der Welt wie bei @AppFlow) 🙂 zu machen.

Sobald das Update bereitgestellt ist, können Sie es über Capgo’s Dashboard überwachen. Updates erreichen die Benutzer in der Regel innerhalb von Minuten nachdem sie die App geöffnet haben. Der Prozess funktioniert wie folgt:

  • Die App überprüft Updates.
  • Herunterlädt das Update im Hintergrund.
  • Markiert die neue Version als aktiv, wenn der Benutzer die App beendet.
  • Anwendet das Update bei der nächsten Startphase.

Für Unternehmenseinsatz können Sie CI/CD-Automatisierung integrieren möchten.

“Wir praktizieren agiles Entwicklung und @Capgo ist mission-kritisch bei der kontinuierlichen Lieferung an unsere Benutzer!”

Problem Lösung und Tipps

Versionenmanagementprobleme

Die Verwaltung der semantischen Versionsnummer in Capgo kann manchmal die Aktualisierung der Bereitstellung komplizieren. Um Ihre Entwicklung zu vermeiden, konfigurieren Sie die folgenden in Ihrem capacitor.config.json datei:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

Wenn eine Aktualisierung fehlschlägt, hier ist, was Sie tun können:

  • Setzen Sie autoUpdate während der Entwicklung. false Entfernen Sie die App.
  • Installieren Sie sie mit der korrigierten Version neu.
  • Set
  • Aktivieren Sie die automatischen Updates erneut, sobald alles stabil ist.

Für große Versionsupdates verwenden Sie die Flagge und hören Sie auf das Ereignis, um die Updates ordnungsgemäß zu verarbeiten: disableAutoUpdateBreaking Mit der Combination dieser Konfigurationen und guten Teampraktiken können Sie die Versionskonsistenz aufrechterhalten und Fehler reduzieren. majorAvailable Team-versionskontrolle

CapacitorUpdater.addListener('majorAvailable', (info) => {
  console.log(`Major update available: ${info.version}`);
  // Add your update prompt logic here
});

Einmal individuelle Updates verwaltet sind, ist es für Teams wichtig, starke Versionierungskontrollpraktiken zu etablieren.

„Jedes Änderungstest vor dem Merging mit dem Hauptrepository wird die Stabilität stärken und kostspielige Fehler vermeiden“

Hier sind einige Methoden, um Konsistenz sicherzustellen:

Definieren Sie einen Zweig als [4]

Hauptrepository

  • als Quelle der Wahrheit. Define one branch as the __CAPGO_KEEP_0__ main repository to act as the source of truth. Once individual updates are managed, it’s crucial for teams to establish strong __CAPGO_KEEP_0__ version control practices.
  • Verwenden Sie separate Capgo-Kanäle für Entwicklungsumgebungen und Produktionsumgebungen.
  • Automatisieren Sie die Versionsuploads über CI/CD-Pipelines.
  • Dokumentieren Sie alle code-Änderungen mit klaren und detaillierten Commit-Nachrichten.

Für größere Teams kann die folgende Versionsverwaltungs-Matrix dabei helfen, Updates zu organisieren:

UmgebungKanalAutomatische AktualisierungVersionsmuster
EntwicklungdevDeaktiviert0.x.x
TestumgebungbetaAktiviertx.x.x-beta
ProduktionstabilAktiviertx.x.x

Update-Wiederherstellungs-Schritte

Selbst mit Vorsichtsmaßnahmen können Updates scheitern. Wenn das passiert, folgen Sie diesen Wiederherstellungs-Schritten:

  1. Rückgängig machen Sie eine vorherige stabile Bundle.
  2. Erhöhen Sie die Versionszahlen für jede neue Korrektur (Hinweis: Versionszahlen können nach der Löschung nicht wieder verwendet werden). [2].
  3. Überprüfen Sie Updates während der Anwendungsstart, um sicherzustellen, dass sie wie erwartet funktionieren.

Capgo’s Updater ist für die Behandlung von Störungen konzipiert. Zum Beispiel, wenn der Server nicht erreichbar ist oder ein Update gelöscht wurde, funktioniert die App weiterhin normal. [3]Zusätzlich werden fehlgeschlagene Netzwerk-Anfragen automatisch während des nächsten Anwendungsstarts wiederholt. [3]Diese eingebaute Resilienz minimiert die Ausfallzeit und sichert glattere Betriebsabläufe.

Zusammenfassung

Die kombinierte Verwendung von Semantischer Versionsnummerierung und Capgo hat die OTA-Updates für Capacitor-Anwendungen effizienter gemacht. Mit 947,6 Millionen Updates und 1.400 Produktionsanwendungen, die dieses System verwenden, [1]sind die Bereitstellungsprozesse um 81 % effizienter geworden. [1]Diese Konfiguration ermöglicht es Entwicklern, Updates schnell und kontrolliert zu pushen, ohne sich auf App-Store-Verzögerungen einzulassen.

Hier sind die Aussagen von Entwicklern:

„Wir haben __CAPGO_KEEP_0__ OTA-Updates in der Produktion für unsere Nutzergruppe von +5000 eingesetzt. Wir sehen sehr glatte Betriebsabläufe, fast alle unsere Nutzer sind innerhalb von Minuten nach dem Bereitstellen des OTA an @Capgo auf dem neuesten Stand.“ - colenso Capgo [1]

Das MAJOR.MINOR.PATCH-Versionierungssystem erleichtert die Kommunikation von Änderungen, neuen Funktionen und Bugfixen. [5]Dies ist insbesondere hilfreich für Teams, die mehrere Releases pro Woche über Capgo’s Plattform verwalten.

Capgo’s verschlüsselte Lösung, die mit CI/CD-Tools integriert ist, ist auch kostengünstig - Kosten können bis zu 26.100 $ über fünf Jahre gesenkt werden. [1]Seine anpassbaren Kanäle stellen sicher, dass Updates an die richtigen Benutzer zu dem richtigen Zeitpunkt gelangen.

“We practice agile development and @Capgo is mission-critical in delivering continuously to our users!” - Rodrigo Mantica [1]

Live-Updates für Capacitor-Anwendungen

Wenn ein Bug im Web-Schicht lebt, liefern Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung vorliegt. Die Benutzer erhalten das Update im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Los geht's jetzt

Neueste von unserem Blog

Capgo gibt Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle mobile App zu erstellen.