Zum Inhalt springen

Befehle

Alle Befehle sollten in Ihrem App-Ordner ausgeführt werden, mit capacitor Projekt angesteckt.

npx @capgo/cli@latest init [apikey]

Diese Methode dient dazu, Sie Schritt für Schritt einzuführen.

Sie wird Ihr App zu Capgo hinzufügen. Sie wird code zu Ihrer App hinzufügen, um die Aktualisierung zu validieren. Ebenso wird sie Ihre App erstellen. Darüber hinaus wird sie Ihre App auf Capgo hochladen. Und sie wird Ihnen helfen, zu überprüfen, ob die Aktualisierung funktioniert.

npx @capgo/cli login [apikey]

Diese Methode dient dazu, Ihre Anmeldung zu speichern. apikey für Sie.

Optionell können Sie geben:

--local Dies wird Ihren apikey in der lokalen Repo speichern und ignoriert ihn im Git.

npx @capgo/cli doctor

Befehl, um zu überprüfen, ob Sie aktuell mit Capgo Paketen sind.

Diese Kommando wird auch nützlich für Fehlerberichte sein.

npx @capgo/cli app add [appId]

[appId] Ihre App-ID im Format com.test.app erklärt hier 💡 Alle Optionen werden in Ihrer Konfiguration erraten, wenn nicht angegeben..

Optional können Sie geben:

um eine benutzerdefinierte Schaltfläche in der __CAPGO_KEEP_0__ Webanwendung anzuzeigen.

  • --icon [/path/to/my/icon] to have a custom icon display in Capgo web app.
  • --name [test] your app ID the format
  • --apikey [key] API-Schlüssel zum Link auf Ihr Konto.
  • --retention [retention] Aufbewahrungszeitraum des App-Bundles in Tagen, 0 durch Standard = unendlich.

Beispiel für capacitor.config.json für appId und AppName wird der Icon im Ressourcenordner erraten.

{
"appId": "ee.forgr.capacitor_go",
"appName": "Capgo",
"webDir": "dist"
}

npx @capgo/cli app set [appId]

[appId] Ist Ihre App-ID, die Formatierung wird erklärt hier.

Optional können Sie geben:

  • --icon [/path/to/my/icon] um eine benutzerdefinierte Icon-Anzeige in der Capgo-Web-Anwendung zu haben.
  • --name [test] um einen benutzerdefinierten Namen in der Liste zu haben.
  • --retention [retention] Aufbewahrungszeitraum des App-Bundles in Tagen, 0 durch Standard = unendlich.
  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.

npx @capgo/cli app list [appId]

[appId] Ihre App-ID in der Format com.test.app erklärt hier Sie können optional angeben:.

__CAPGO_KEEP_0__ Schlüssel, um auf Ihr Konto zu verlinken.

  • --apikey [key] API key to link to your account.

Abschnitt mit dem Titel „Löschen“

Ihre App-ID in der Format

npx @capgo/cli app delete [appId]

[appId] Ihre App-ID in der Format ist erklärt hier. com.test.app erläutert hier hier.

Optionally, Sie können geben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.
  • --bundle Mit der Versionsnummer wird nur diese Version gelöscht.

npx @capgo/cli app debug [appId]

[appId] Ihre App-ID im Format com.test.app erläutert hier hier.

Optionally, Sie können geben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.
  • --device mit dem spezifischen Gerät, das Sie debuggen möchten

npx @capgo/cli app setting [path]

Bearbeiten Sie die Capacitor-Konfiguration.

[path] - Pfad der Einstellung, die Sie ändern möchten. Zum Beispiel, um die appIdgeben Sie appId. Wenn Sie die automatische Aktualisierung deaktivieren möchten in dem capacitor-updater geben Sie plugins.CapacitorUpdater.autoUpdate

Sie MÜSSEN entweder --string oder --bool!

Optionen:

  • --string <string> - legt die Einstellung auf einen String fest
  • --bool <true | false> - legt die Einstellung auf einen booleschen Wert

npx @capgo/cli bundle upload [appId]

[appId] Ihre App-ID ist hier, die Formatierung wird erklärt hier.

Sie können optional angeben:

  • --apikey <apikey> API-Schlüssel, um auf Ihr Konto zu verlinken.
  • --path <path> Pfad des Ordners zum Hochladen.
  • --channel <channel> Kanal, um zu verlinken.
  • --external <url> Stattdessen auf eine externe URL verlinken, anstatt auf Capgo hochzuladen.
  • --iv-session-key <key> Setzen Sie die IV und Sitzungsschlüssel für die Bundel-URL extern.
  • --s3-endpoint <s3Endpoint> URL des S3-Endpunkts. Funktioniert nicht mit Delta-Uploads oder der externen Option.
  • --s3-region <region> Region für Ihren S3-Bucket.
  • --s3-apikey <apikey> API-Schlüssel für Ihren S3-Endpunkt.
  • --s3-apisecret <apisecret> API-Geheimnis für Ihren S3-Endpunkt.
  • --s3-bucket-name <bucketName> Name für Ihren AWS-S3-Bucket.
  • --s3-port <port> Port für Ihren S3-Endpunkt.
  • --no-s3-ssl Deaktivieren Sie SSL für S3-Uploads.
  • --key <key> Benutzerdefinierter Pfad für die öffentliche Signierungskey (v1-System).
  • --key-data <keyData> Öffentliche Signierungskey (v1-System).
  • --key-v2 <key> Benutzerdefinierter Pfad für die private Signierungskey (v2-System).
  • --key-data-v2 <keyData> Private Signierungskey (v2-System).
  • --bundle-url Druckt die Bundle-URL in die Konsole aus.
  • --no-key Übergeht die Signatur und sendet ein klares Update.
  • --no-code-check Übergeht die Überprüfung, ob notifyAppReady() in der Quelle code und der Index im Root-Ordner vorhanden ist.
  • --display-iv-session Zeigt im Konsole die IV und Sitzungsschlüssel an, die zum Verschlüsseln des Updates verwendet werden.
  • --bundle <bundle> Bundle-Version des zu uploadenden Bundles.
  • --min-update-version <minUpdateVersion> Minimal erforderliche Version, um auf diese Version zu aktualisieren. Wird nur verwendet, wenn die automatische Aktualisierung in den Kanal in der Metadaten gesetzt ist.
  • --auto-min-update-version Setzt die Mindestaktualisierungsversion basierend auf native Paketen.
  • --ignore-metadata-check Übergeht die Überprüfung der Metadaten (node_modules) bei dem Upload.
  • --ignore-checksum-check Übergeht die Überprüfung der Prüfsumme bei dem Upload.
  • --timeout <timeout> Zeitüberschreitung für den Upload-Prozess in Sekunden.
  • --delta Lädt Delta- (Manifest-) Dateien zusammen mit dem vollständigen Bundle hoch.
  • --delta-only Lädt nur Delta- (Manifest-) Updates hoch, indem das vollständige Bundle übersprungen wird.
  • --no-delta Deaktiviert Delta (manifest)-uploads (nützlich, wenn directUpdate Sie haben enabled, aber ein vollständiges Bundle möchten).
  • --tus Laden Sie das Bundle mit dem tus-Protokoll hoch.
  • --multipart Verwendet das multipart-Protokoll, um Daten an S3 hochzuladen, veraltet, verwenden Sie TUS stattdessen.
  • --encrypted-checksum <encryptedChecksum> Ein verschlüsselter Prüfsummenwert (Signatur). Verwendet nur, wenn ein externes Bundle hochgeladen wird.
  • --package-json <packageJson> Ein Pfad zu package.json. Nützlich für Monorepos.
  • --auto-set-bundle Setzen Sie das Bundle in capacitor.config.json.
  • --node-modules <nodeModules> Eine Liste von Pfaden zu node_modules. Nützlich für Monorepos (komma-getrennt, z.B. ../../node_modules,./node_modules)

⭐️ Die externe Option hilft dabei, 2 Fälle zu lösen: Unternehmen mit Datenschutzbedenken, senden Sie das code nicht an einen Dritten und Apps größer als 200 MB. Mit dieser Einstellung speichert Capgo nur den Link zum Zip und sendet den Link an alle Apps.

👀 Der Capgo-Cloud sieht nie, was in dem Link (bei externer Option) oder im code gespeichert ist.

🔑 Sie können eine zweite Sicherheitsstufe durch Verschlüsselung nutzen, dann kann der Capgo nichts sehen oder ändern, es wird “vertrauenslos”.

Beispiel von package.json für Version

{
"version": "1.0.2"
}

⛔ Die Version sollte größer als „0.0.0“ sein.

💡 Vergessen Sie nicht, die Versionsnummer bei jeder Übermittlung zu aktualisieren, die Versionsnummer kann nicht überschrieben oder nach der Löschung wiederverwendet werden, aus Sicherheitsgründen.

npx @capgo/cli bundle list [appId]

[appId] Ihre App-ID im Format com.test.app erläutert hier Optional können Sie folgendes angeben:.

__CAPGO_KEEP_0__ Schlüssel, um auf Ihr Konto zu verlinken.

  • --apikey [key] API key to link to your account.

npx @capgo/cli bundle delete [appId]

[appId] Ihre App-ID in der Formatierung com.test.app erklärt wird hier.

Optional können Sie geben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.
  • --bundle Mit der Versionsnummer wird nur diese Version gelöscht.

in einer SemVer-Rang für eine Hauptversion zu Cloud

npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]

[appId] Ihre App-ID in der Formatierung com.test.app erklärt wird Hier.

Optional: Sie können auch angeben:

  • --apikey [key] API-Schlüssel, um auf Ihr Konto zu verlinken.
  • --bundle [majorVersion] eine Version, für die Sie vorherige Pakete entfernen möchten, es wird die letzte behalten + numberToKeep.
  • --keep [numberToKeep] die Anzahl der Pakete, die Sie behalten möchten (Standard 4).

Beispiel: Wenn Sie 10 Versionen von 10.0.1 bis 10.0.11 haben und es verwenden npx @capgo/cli cleanup [appId] --bundle=10.0.0 es werden 10.0.1 bis 10.0.6 entfernt. 10.0.7 bis 10.0.11 werden behalten.

Wenn Sie insgesamt 20 Versionen haben und keine Paketanzahl wie folgt angeben: npx @capgo/cli cleanup [appId] --keep=2 es werden 18 Versionen entfernt, und die letzten 2 werden behalten.

Diese Anweisung wird nach Bestätigung gefragt, es zeigt eine Tabelle an, was behalten und entfernt wird.

WarnungDiese Anweisung ist veraltet und wird in der nächsten großen Version entfernt. Bitte verwenden Sie das neue Verschlüsselungssystem. npx @capgo/cli bundle encrypt [path/to/zip]

Diese Anweisung wird verwendet, wenn Sie einen externen Quellcode verwenden, um Ihre code zu speichern oder für Testzwecke.

Optional können Sie Folgendes angeben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] den privaten Schlüsseldaten, wenn Sie inline verwenden möchten. ivSessionKeyDie Anweisung wird Ihre __CAPGO_KEEP_0__ ausgeben und eine verschlüsselte Zip-Datei generieren, die Sie mit der Upload-Anweisung oder der Entschlüsselungsanweisung verwenden können.

npx @capgo/cli bundle encrypt [path/to/zip] [checksum]

Dieser Befehl wird verwendet, wenn Sie externe Quellen verwenden, um Ihre code zu speichern oder für Testzwecke.

Die Prüfsumme ist die sha256 des Bundles (erzeugt durch —key-v2), sie wird verwendet, um die Integrität des Dateis nach der Entschlüsselung zu überprüfen.

--key [/path/to/my/private_key] Sie wird mit dem privaten Schlüssel verschlüsselt und zusammen mit dem Bundle gesendet. --key-data [privateKey] In der Verschlüsselung v2 wird die Prüfsumme zu einem „Signature“ des Bundles aufgerüstet. --json Optional können Sie geben: ivSessionKeyden Pfad Ihres privaten Schlüssels.

die private Schlüsseldaten, wenn Sie inline verwenden möchten.

die Ausgabe als JSON zu sehen.

npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]

Der Befehl wird Ihre

--key [/path/to/my/private_key] y und generiert einen verschlüsselten Zip, um ihn mit dem Upload-Befehl oder dem Entschlüsselungsbefehl zu verwenden.

--key-data [privateKey] Entschlüsseln

Abschnitt mit dem Titel „Entschlüsseln“","Optional können Sie geben:","den Pfad Ihres privaten Schlüssels","die private Schlüsseldaten, wenn Sie inline verwenden möchten. Dieser Befehl wird hauptsächlich für Testzwecke verwendet, er wird den Zip entchlüsseln und die bas64-entschlüsselte Sitzungsschlüssel in der Konsole ausgeben. "Entschlüsseln V2"

Abschnitt mit dem Titel “V2 entschlüsseln”

npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]

Sie können optional angeben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] den privaten Schlüsseldaten, wenn Sie inline verwenden möchten. Diese Anweisung wird hauptsächlich für Testzwecke verwendet, sie wird den Zip entschlüsseln und das Base64-entschlüsselte Sitzungschlüssel in der Konsole ausgeben. --checksum [checksum] den Prüfsummenwert des Dateis, es wird die Prüfsumme nach der Entschlüsselung überprüfen.

npx @capgo/cli bundle zip [appId]

[appId] Ihr App-ID ist, die Format wird erklärt hier.

Sie können optional angeben:

  • --path [/path/to/my/bundle] einen bestimmten Ordner hochzuladen.
  • --bundle [1.0.0] die Versionsnummer des Bundle im Dateinamen festzulegen.
  • --name [myapp] um den Dateinamen zu überschreiben.
  • --json um Informationen als JSON auszugeben.
  • --no-code-check um die code-Überprüfung zu ignorieren und das Bundle trotzdem zu senden.
  • --key-v2 um das neue Verschlüsselungssystem zu verwenden. Dies ist erforderlich, da das neue Verschlüsselungssystem bessere Prüfsummen verwendet, um die Integrität der Datei zu überprüfen.

npx @capgo/cli bundle compatibility [appId] -c [channelId]

[appId] Ihre App-ID ist das, die Format wird erklärt hier. [channelId] der Name Ihres neuen Kanals.

Optional können Sie geben:

  • --apikey [key] API-Schlüssel, um auf Ihr Konto zu verlinken.
  • --text Text anstelle von Emojis in der Tabelle verwenden.
  • --channel [channel] der Kanal, um die Kompatibilität zu überprüfen.
  • --package-json <packageJson> Ein Pfad zu package.json. Nützlich für Monorepos
  • --node-modules <nodeModules> Eine Liste von Pfaden zu node_modules. Nützlich für Monorepos (komma getrennt z.B. ../../node_modules,./node_modules)

npx @capgo/cli channel add [channelId] [appId]

[channelId] den Namen Ihres neuen Kanals. [appId] Ihre App-ID im Format com.test.app erklärt hier.

npx @capgo/cli channel delete [channelId] [appId]

[channelId] den Namen Ihres Kanals, den Sie löschen möchten. [appId] Ihre App-ID in der Formatierung com.test.app wird hier erklärt. Liste.

Abschnitt mit dem Titel „Liste“

Ihre App-ID in der Formatierung

npx @capgo/cli channel list [appId]

[appId] wird hier erklärt. com.test.app Optional können Sie geben: __CAPGO_KEEP_0__-Schlüssel, um auf Ihr Konto zu verlinken..

__CAPGO_KEEP_0__ key to link to your account.

  • --apikey [key] API

npx @capgo/cli channel set [channelId] [appId]

[appId] Ihre App-ID, die Formatierung wird erklärt hier.

Sie können optional angeben:

  • --bundle [1.2.3] Ihr App-Bundle, das bereits an den Cloud gesendet wurde, um es mit einem Kanal zu verbinden.
  • --latest die Versionsnummer des Bundles abrufen von package.json:versionkann nicht mit --bundle.
  • --state [ normal | default ] den Kanalzustand setzen, kann normal oder defaultEiner der Kanäle muss default.
  • --downgrade ermöglicht dem Kanal, Downgrade-Versionen an Geräte zu senden.
  • --no-downgrade verhindert das Kanal, um eine Downgrade-Version an Geräten zu senden.
  • --upgrade erlaubt dem Kanal, eine Upgrade-(Haupt)-Version an Geräten zu senden.
  • --no-upgrade verhindert dem Kanal, eine Upgrade-(Haupt)-Version an Geräten zu senden.
  • --ios erlaubt dem Kanal, eine Version an iOS-Geräten zu senden.
  • --no-ios verhindert dem Kanal, eine Version an iOS-Geräten zu senden.
  • --android erlaubt dem Kanal, eine Version an Android-Geräten zu senden.
  • --no-android verhindert dem Kanal, eine Version an Android-Geräten zu senden.
  • --self-assign erlaubt Geräten, sich selbst diesem Kanal zuzuweisen.
  • --no-self-assign verhindert Geräten, sich selbst diesem Kanal zuzuweisen.
  • --disable-auto-update STRATEGY Deaktiviert die automatische Aktualisierungsstrategie für diesen Kanal. Die möglichen Optionen sind: Haupt, Minor, Metadaten, Keine.
  • --apikey [key] API-Schlüssel, um auf Ihr Konto zuzugreifen.

Deaktiviert die Aktualisierungsstrategie

Sektion: "Updates-Strategie deaktivieren"

Es gibt einige Möglichkeiten, Updates für zu alte Versionen zu deaktivieren.
Capgo kann keine native code aktualisieren, daher sollte ein Update von einer Version mit dem alten native code zu einer Version mit dem aktualisierten native code nicht möglich sein. Es gibt ein paar Möglichkeiten, das zu erreichen.

Zuerst ist die "Major-Strategie". Sie verhindert ein Update von major Die Hauptversion ist die hervorgehobene Zahl ( 0.0.0 -> 1.0.00.0 und1Die zweite ist die "Minor-Strategie". Sie verhindert ein Update von 0.0.0).
oder ein Update von minor zu 0.0.0 -> 1.1.0 ACHTUNG: Beachten Sie das 1.1.0 BE AWARE 1.2.0. BE AWARE Diese Strategie verhindert keine Aktualisierung. 0.1.0 -> 1.1.0

Drittens, die patch Strategie. Sie wurde in capgo als sehr strenger Modus hinzugefügt. Es wird nicht empfohlen, sie zu verwenden, es sei denn, Sie verstehen vollständig, wie sie funktioniert.

  • Um eine Aktualisierung akzeptieren zu können, müssen die folgenden Bedingungen erfüllt sein:
  • Der Major ist zwischen der neuen und der alten Version gleich.
  • Der Minor ist zwischen der neuen und der alten Version gleich.

Die Patch-Version der neuen Version ist größer als die Patch-Version der alten Version.

  • 0.0.311 -> 0.0.314 ✅
  • 0.0.0 -> 0.0.314 ✅
  • 0.0.316 -> 0.0.314 ❌
  • 0.1.312 -> 0.0.314 ❌
  • 1.0.312 -> 0.0.314 ❌

Hier ist ein Beispiel für Szenarien, in denen die Aktualisierung zugelassen oder abgelehnt wird. metadata Zuletzt die am schwierigsten Strategie. Die
Strategie. Zuerst müssen Sie wissen, dass die Aktualisierungen ursprünglich nachdem Sie sie aktiviert haben, NICHT AKTIVIERT WERDEN, da der Kanal die erforderliche Metadaten fehlt.
Wenn der Kanal keine Metadaten enthält, sehen Sie eine Nachricht wie diese:

Kann keine Metadaten finden

Wenn Sie etwas wie dies sehen, wissen Sie, dass Sie zum aktuellen Bundle des fehlenden Kanals gehen und die Metadaten einrichten müssen.
Zuerst müssen Sie herausfinden, welcher Kanal fehlschlägt. Sie können das tun, indem Sie sich die misconfigured Spalte

Falsch konfigurierte Tabelle

Dann gehen Sie zum fehlenden Kanal und klicken Sie auf Bundle numberDies sollte Sie zur Bundle-Seite bringen.

Fehlender Kanal

Locate failing channel Minimal update version Einmal dort füllen Sie das Feld. Dies sollte ein.
Wenn der Wert, den Sie übergeben, kein semver ist, erhalten Sie einen Fehler, aber wenn alles korrekt verläuft, sollten Sie etwas wie das sehen:

Mindestversion setzen

Jetzt wollen Sie wahrscheinlich nicht jede Zeit diese Daten manuell setzen. Glücklicherweise wird der CLI verhindern, dass Sie ein Update ohne diese Metadaten senden

CLI-Fehler ohne Metadaten

Um ein Bundle korrekt hochzuladen, wenn Sie die Option verwenden, müssen Sie den metadata mit einem gültigen semver übergeben. Etwas wie das: --min-update-version __CAPGO_KEEP_0__-Hochladen mit Metadaten

CLI upload with metadata

ist nicht der EINZIGE Weg, Kompatibilität zu erreichen. Es gibt auch den --min-update-version Hier ist, wie es funktioniert. --auto-min-update-versionZuerst überprüft es die aktuell hochgeladene Version im Kanal. Es überprüft die Kompatibilität genauso wie

Zuerst überprüft es die aktuell hochgeladene Version im Kanal. Es überprüft die Kompatibilität genauso wie bundle compatibility Kommando würde. Zweitens, wenn die neue Version 100% kompatibel ist, wird die min_update_version aus der neuesten Version im Kanal. Wenn nicht, dann setzt es die min_update_version auf die Bundle-Nummer der neu hochgeladenen Version. Sie erhalten immer eine Information, was die

wenn Sie diese Option verwenden. Es wird etwas wie folgendes aussehen: min_update_version Mindestupdateversion

Wenn die neue Version nicht kompatibel ist, sollte es etwas wie folgendes aussehen:

Mindestupdateversion nicht kompatibel

End-to-End-Verschlüsselung (Vertrauenswürdig)

Capgo supports end-to-end encryption, this means that your bundle(code) is encrypted before sent to the cloud and decrypted on the device. For that, you need to generate an RSA key pair, you can use the following command to generate it.

Mindestupdateversion

Siehe unten für weitere Informationen zum Verschlüsselungs-System.

Wie funktioniert das Kryptosystem

Verschlüsselungsschema

npx @capgo/cli key create

Optional kannst du angeben: --force __CAPGO_KEEP_0__

Um die bestehende Schlüssel zu überschreiben. Diese Anweisung erstellt für dich ein Schlüsselpaar in deiner App und fragt dich nach dem Speichern der privaten Schlüssel an einem sicheren Ort. Es wird empfohlen, den privaten Schlüssel nicht in Git zu committen und ihn nicht mit anderen zu teilen. key save

Nach deiner lokalen Testphase entferne die Schlüssel aus der Konfigurationsdatei und füge sie auf der CI-Schritt hinzu mit

Speichere Schlüssel in deiner App-Konfiguration

npx @capgo/cli key save

Abschnitt mit dem Titel “Speichere Schlüssel in deiner App-Konfiguration”

--key [/path/to/my/public_key] Optional kannst du angeben:

--key-data [publicKey] die öffentliche Schlüsseldaten, wenn Sie inline verwenden möchten. Diese Befehl ist nützlich, wenn Sie die Empfehlung befolgt haben und die Schlüssel nicht in Ihrer Anwendungs-Konfiguration committet haben.

Um Ihre Arbeit zu automatisieren, empfehle ich Ihnen, dass die GitHub-Aktion die Arbeit des Hochladens auf unseren Server übernimmt

GitHub-Aktion-Tutorial

GitHub - Cap-go/demo-app

Beachten Sie nicht, dass Sie die CI-Umgebungsvariable mit Ihrem API-Schlüssel konfigurieren müssen