Zum Inhalt springen

Commands

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.

It will add your app to Capgo. It will add the code to your app to validate the update. Likewise, it will build your app. Furthermore, it will upload your app to Capgo. And it will help you to check if the update works.

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 es im Git.

npx @capgo/cli doctor

Befehl zur Überprüfung, ob Sie mit den Capgo Paketen auf dem neuesten Stand sind.

Dieser Befehl wird auch für die Fehlerberichterstattung nützlich sein.

npx @capgo/cli app add [appId]

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

Optional können Sie Folgendes angeben:

um eine benutzerdefinierte App-Icon 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 is explained here
  • --apikey [key] API-Schlüssel zum Link auf Ihr Konto.
  • --retention [retention] Rückhaltezeitraum 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] Optional können Sie geben: um eine benutzerdefinierte Icon-Anzeige in der __CAPGO_KEEP_0__-Web-Anwendung zu haben..

um eine benutzerdefinierte Bezeichnung in der Liste zu haben.

  • --icon [/path/to/my/icon] to have a custom icon display in Capgo web app.
  • --name [test] for appId and AppName, the icon is guess in the resources folder
  • --retention [retention] Rückhaltezeit des App-Bundles in Tagen, 0 durch Voreinstellung = unendlich.
  • --apikey [key] API-Schlüssel zur Verknüpfung mit Ihrem Konto.

npx @capgo/cli app list [appId]

[appId] Ihre App-ID in der Formatierung com.test.app erläutert hier.

Optional können Sie angeben:

  • --apikey [key] API-Schlüssel zur Verknüpfung mit Ihrem Konto.

npx @capgo/cli app delete [appId]

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

Optionell 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.

npx @capgo/cli app debug [appId]

[appId] Ihre App-ID im Format com.test.app erklärt hier.

Optionell können Sie 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]

Die Capacitor-Konfiguration bearbeiten.

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

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

Optionen:

  • --string <string> - setzt die Einstellung auf einen String
  • --bool <true | false> - setzt die Einstellung auf einen boolean

npx @capgo/cli bundle upload [appId]

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

Optional können Sie geben:

  • --apikey <apikey> API-Schlüssel, um auf Ihr Konto zu verlinken.
  • --path <path> Pfad des Ordners zum Hochladen.
  • --channel <channel> Kanal, um sich zu verlinken.
  • --external <url> Link to external URL instead of uploading to Capgo Cloud.
  • --iv-session-key <key> IV und Sitzungsschlüssel für Bundle-URL extern setzen.
  • --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 SSL für S3-Upload deaktivieren.
  • --key <key> Benutzerdefinierte Pfad für öffentliche Signierungskey (v1-System).
  • --key-data <keyData> Öffentlicher Signierungskey (v1-System).
  • --key-v2 <key> Benutzerdefinierter Pfad für privaten Signierungskey (v2-System).
  • --key-data-v2 <keyData> Privater Signierungskey (v2-System).
  • --bundle-url Bundeldatei-URL in die Konsole ausgibt.
  • --no-key Übersende Update ohne Signierungskey.
  • --no-code-check Übersieht die Überprüfung, ob notifyAppReady() in der Quelldatei code und im Index im Root-Ordner aufgerufen wurde.
  • --display-iv-session IV und Sitzungskey im Konsole aus, die zum Verschlüsseln des Updates verwendet werden.
  • --bundle <bundle> Version der zu hochladenden Bundeldatei.
  • --min-update-version <minUpdateVersion> Minimal erforderliche Version, um auf diese Version zu aktualisieren. Wird nur verwendet, wenn die automatische Aktualisierung auf der Basis der Kanal-Metadaten deaktiviert ist.
  • --auto-min-update-version Setzt die Mindestaktualisierungsversion basierend auf native Paketen.
  • --ignore-metadata-check Übersieht die Überprüfung der Metadaten (node_modules) bei der Hochladung.
  • --ignore-checksum-check Übersieht die Prüfung der Prüfsumme bei der Hochladung.
  • --timeout <timeout> Zeitüberschreitung für den Upload-Prozess in Sekunden.
  • --delta Hochlädt Delta-Dateien (Manifest) neben der vollständigen Bundeldatei.
  • --delta-only Uploads nur Delta (manifest)-Updates, wobei die volle Bundle-Datei ausgelassen wird.
  • --no-delta Deaktiviert die Delta (manifest)-Uploads (nützlich, wenn ein Instant-Apply-Modus aktiviert ist, aber ein volles Bundle gewünscht wird). autoUpdate Uploadt das Bundle mithilfe des tus-Protokolls.
  • --tus Verwendet das multipart-Protokoll, um Daten an S3 hochzuladen, veraltet, verwenden Sie stattdessen TUS.
  • --multipart Eine verschlüsselte Prüfsumme (Signatur). Wird nur verwendet, wenn ein externes Bundle hochgeladen wird.
  • --encrypted-checksum <encryptedChecksum> Eine Pfade zu package.json. Nützlich für monorepos.
  • --package-json <packageJson> Setze das Bundle in __CAPGO_KEEP_0__.config.json.
  • --auto-set-bundle Set the bundle in capacitor.config.json.
  • --node-modules <nodeModules> ⭐️ Die externe Option hilft dabei, zwei Fälle zu lösen: Unternehmen mit Datenschutzbedenken, senden Sie nicht das __CAPGO_KEEP_0__ an einen Dritten und Apps größer als 200 MB. Mit dieser Einstellung speichert __CAPGO_KEEP_1__ nur den Link zum Zip und sendet den Link an alle Apps.

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

👀 Capgo cloud never looks at what is in the link (for external option), or in the code when stored.

External option helps to unlock 2 cases: corporate with privacy concern, don’t send the Capgo to a third part and app bigger than 200 MB. With this setting, __CAPGO_KEEP_1__ store only the link to the zip and sends the link to all apps.

Beispiel für 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 wird hier erklärt Optional können Sie geben:.

__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 Format com.test.app erklärt wird hier.

Sie können optional angeben:

  • --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 Format com.test.app wird erklärt hier.

Optionell können Sie folgendes 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 entfernen Sie 10.0.1 bis 10.0.6. 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 entfernen Sie 18 Versionen und behalten die letzten 2.

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

Warnung: Diese Kommandozeilenanweisung 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]

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

Optional können Sie angeben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] die private Schlüsseldaten, wenn Sie inline verwenden möchten. Das Kommando wird Ihre ivSessionKeyy und generiert ein verschlüsseltes Zip, um es mit dem Upload-Kommando oder dem Entschlüsselungskommando zu verwenden.

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

Dieser Befehl wird verwendet, wenn Sie einen externen Speicherort verwenden, um Ihre code zu speichern oder für Testzwecke.

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

--key [/path/to/my/private_key] Es wird mit dem privaten Schlüssel verschlüsselt und zusammen mit dem Bundle gesendet. --key-data [privateKey] Bei der Verschlüsselung V2 wird der Prüfsummenwert auf ein „Zeichen“ des Bundles aufgewertet. --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.

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

Der Befehl wird Ihre

--key [/path/to/my/private_key] y und generiert ein verschlüsseltes Zip, das Sie mit dem Upload-Befehl oder dem Entschlüsselungsbefehl verwenden können.

--key-data [privateKey] Entschlüsseln

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

Optional können Sie geben:

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

npx @capgo/cli bundle zip [appId]

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

Optional können Sie geben:

  • --path [/path/to/my/bundle] um ein bestimmtes Verzeichnis hochzuladen.
  • --bundle [1.0.0] um die Versionsnummer des Bundle im Dateinamen zu setzen.
  • --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 Formatierung 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 Verwenden Sie Text anstatt Emojis in der Tabelle.
  • --channel [channel] Der Kanal, um die Kompatibilität zu überprüfen.
  • --package-json <packageJson> Eine Pfade 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] Der Name Ihres neuen Kanals. [appId] Die ID Ihres Apps im Format com.test.app erläutert 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 erläutert hier.

npx @capgo/cli channel list [appId]

[appId] Ihre App-ID in der Formatierung com.test.app erläutert hier.

Optional können Sie folgende Angaben machen:

  • --apikey [key] Schlüssel API zum Linken auf Ihr Konto.

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

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

Optional können Sie geben:

  • --bundle [1.2.3] Ihr App-Bundle, das bereits an den Cloud gesendet wurde, um es einer Kanal zuzuordnen.
  • --latest die Versionsnummer des Bundles abrufen, package.json:versionkann nicht mit --bundle.
  • --state [ normal | default ] die Kanalzustand setzen, kann auch normal oder default. Ein Kanal muss verwendet werden default.
  • --downgrade erlaubt dem Kanal, eine Downgrade-Version an Geräte zu senden.
  • --no-downgrade verhindert dem Kanal, eine Downgrade-Version an Geräte zu senden.
  • --upgrade erlaubt dem Kanal, eine Upgrade-(Haupt)-Version an Geräte zu senden.
  • --no-upgrade verhindert dem Kanal, eine Upgrade-(Haupt)-Version an Geräte zu senden.
  • --ios erlaubt dem Kanal, eine Version an iOS-Geräte zu senden.
  • --no-ios verhindert dem Kanal, eine Version an iOS-Geräte zu senden.
  • --android erlaubt dem Kanal, eine Version an Android-Geräte zu senden.
  • --no-android verhindert dem Kanal, eine Version an Android-Geräte 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.

Disable updates strategy

Abschalten der Updates-Strategie

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 einige Möglichkeiten, das zu erreichen.

Zuerst ist die major Strategie. Sie verhindert ein Update von 0.0.0 -> 1.0.0. Die Hauptversion ist die hervorgehobene Zahl (1.0.0 und 0.0.0).
Zweitens ist die minor Strategie. Sie verhindert ein Update von 0.0.0 -> 1.1.0 oder ein Update von 1.1.0 zu 1.2.0. Achtung Diese Strategie verhindert nicht, dass ein Update durchgeführt wird 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 ein Update akzeptieren zu können, müssen die folgenden Bedingungen erfüllt sein:
  • Die Hauptversion ist zwischen der neuen und der alten Version gleich
  • Die Minor-Version 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 das Update zugelassen oder abgelehnt wird metadata Zuletzt die am schwierigsten Strategie. Die
Strategie. Zuerst müssen Sie wissen, dass die Updates anfangs nachdem Sie sie aktivieren, nicht funktionieren werden als der Kanal die erforderliche Metadaten fehlt.
Wenn der Kanal Metadaten fehlt, sehen Sie eine Nachricht wie diese:

Kann keine Metadaten finden

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

Falsch konfigurierte Tabelle

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

Fehlerhafter Kanal

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

Mindestversion setzen

Jetzt wollen Sie wahrscheinlich nicht jede Zeit diese Daten manuell setzen. Glücklicherweise wird der CLI verhindern, dass Sie eine Aktualisierung ohne diese Metadaten versenden

CLI-Fehler ohne Metadaten

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

CLI upload with metadata

Die --min-update-version ist nicht der EINZIGE Weg, die Kompatibilität zu gewährleisten. Es gibt auch die --auto-min-update-version. Hier ist, wie es funktioniert.

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, verwendet es 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

wird, wenn Sie diese Option verwenden. Es wird wie folgt aussehen: min_update_version Mindestaktualisierungsversion

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

Mindestaktualisierungsversion nicht kompatibel

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

Capgo unterstützt die End-to-End-Verschlüsselung, was bedeutet, dass Ihr Bundle (code) vor dem Senden an den Cloud-Server verschlüsselt wird und auf dem Gerät entschlüsselt wird. Dazu müssen Sie ein RSA-Schlüsselpaar generieren, Sie können den folgenden Befehl verwenden, um es zu generieren.

Das Verschlüsselungssystem ist eine Combination aus RSA und AES, der RSA-Schlüssel wird verwendet, um den AES-Schlüssel zu verschlüsseln, und der AES-Schlüssel wird verwendet, um das Datei zu verschlüsseln.

Siehe unten für weitere Informationen zum Verschlüsselungssystem.

Wie funktioniert das Kryptosystem?

Verschlüsselungsschema

npx @capgo/cli key create

Optional können Sie angeben: --force um das bestehende Schlüsselpaar zu überschreiben. Dieser Befehl wird für Sie ein Schlüsselpaar in Ihrer App erstellen und Sie werden aufgefordert, den privaten Schlüssel an einem sicheren Ort zu speichern. Es wird empfohlen, den privaten Schlüssel nicht in Git zu committen und ihn nicht mit anderen zu teilen.

Nach Ihrer lokalen Testphase entfernen Sie den Schlüssel aus der Konfigurationsdatei und fügen Sie ihn im CI-Schritt ein mit key save

npx @capgo/cli key save

Optional können Sie Folgendes angeben:

--key [/path/to/my/public_key] den Pfad Ihres öffentlichen Schlüssel-Dateis.

--key-data [publicKey] die öffentliche Schlüssel-Daten, wenn Sie inline verwenden möchten. Diese Anweisung ist nützlich, wenn Sie der Empfehlung gefolgt sind und den Schlüssel nicht in Ihrer App-Konfiguration committet haben.

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

GitHub-Aktion-Tutorial

GitHub - Cap-go/demo-app

Vergessen Sie nicht, die CI-Umgebungsvariable mit Ihrem API-Schlüssel zu konfigurieren

Wenn Sie Commands verwenden Commands um das Dashboard und die API-Operationen zu planen, verbinden Sie es mit API-Übersicht zur Implementierungsdetail in API-Übersicht Einführung zur Implementierungsdetail in Einführung API-Schlüssel zur Implementierungsdetail in API-Schlüssel Geräte für die Implementierungsdetails in Geräten und Bundles für die Implementierungsdetails in Bundles. Bearbeiten-Seite