Zum Inhalt springen

Befehle

Alle Befehle sollten in Ihrem App-Ordner mit capacitor Projekt ausgeführt werden, sobald dieses ordnungsgemäß eingeigt ist.

npx @capgo/cli@latest init [apikey]

Diese Methode ist hier, um Sie Schritt für Schritt einzuführen.

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

npx @capgo/cli login [apikey]

Diese Methode ist hier, um Sie zu erinnern, apikey für Sie.

Optional können Sie geben:

--local Dies wird Ihre App speichern API-Schlüssel in der lokalen Repo und ignoriere es im Git.

npx @capgo/cli doctor

Befehl, um zu überprüfen, ob Sie mit Capgo Paketen auf dem neuesten Stand sind.

Dieser Befehl wird auch bei der Fehlerberichterstattung nützlich sein.

npx @capgo/cli app add [appId]

[appId] für 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 Folgendes angeben:

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

Beispiel für capacitor.config.json für appId und AppName wird das 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 App-Icon-Anzeige in Capgo Web-App zu haben.
  • --name [test] um eine benutzerdefinierte App-Name-Anzeige in der Liste zu haben.
  • --retention [retention] Rückhaltezeit 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, die Formatierung com.test.app wird erklärt hier.

Optional können Sie geben:

  • --apikey [key] API-Schlüssel, um auf Ihr Konto zuzugreifen.

npx @capgo/cli app delete [appId]

[appId] Ihrem App-ID im Format com.test.app erklärt hier Optional können Sie geben:.

__CAPGO_KEEP_0__-Schlüssel, um auf Ihr Konto zuzugreifen.

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

Abschnitt mit dem Titel „Debug“

Abschnitt mit dem Titel „Debug“

npx @capgo/cli app debug [appId]

[appId] Ihre App-ID in der Format com.test.app erläutert hier Optionally, Sie können geben:.

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

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

Abschnitt mit dem Titel „Einstellung“

Bearbeiten Sie die __CAPGO_KEEP_0__-Konfiguration.

npx @capgo/cli app setting [path]

Edit the Capacitor config.

[path] geben Sie appId. Wenn Sie die automatische Aktualisierung deaktivieren möchten in der appId. If you wish to disable auto update in the capacitor-updaterangeben 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.

Optionally, Sie können geben:

  • --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> Link auf externe URL anstatt zum Hochladen auf Capgo Cloud.
  • --iv-session-key <key> Setzen Sie die IV und Sitzungschlüssel für die Bundle-URL extern.
  • --s3-endpoint <s3Endpoint> URL des S3-Endpunkts. Funktioniert nicht mit Delta-Hochladen oder der externen Option.
  • --s3-region <region> Region für Ihr 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 Ihr AWS-S3-Bucket.
  • --s3-port <port> Port für Ihren S3-Endpunkt.
  • --no-s3-ssl SSL für S3-Upload deaktivieren.
  • --key <key> Benutzerdefinierter Pfad für öffentlichen Signierungschlüssel (v1-System).
  • --key-data <keyData> Öffentlicher Signierungschlüssel (v1-System).
  • --key-v2 <key> Benutzerdefinierter Pfad für privaten Signierungschlüssel (v2-System).
  • --key-data-v2 <keyData> Privater Signierungschlüssel (v2-System).
  • --bundle-url Gibt die Bundle-URL in die Standardausgabe aus.
  • --no-key Übergeht die Signierungsprüfung und sendet ein klares Update.
  • --no-code-check Übergeht die Überprüfung, ob notifyAppReady() in der Quelle code und im Index im Root-Ordner aufgerufen wurde.
  • --display-iv-session Zeigt im Konsole den IV und die Sitzungsschlüssel an, die zum Verschlüsseln des Updates verwendet wurden.
  • --bundle <bundle> Bundle-Versionennummer des zu hochladenden Bundles.
  • --min-update-version <minUpdateVersion> Minimal erforderliche Version, um auf diese Version zu aktualisieren. Wird nur verwendet, wenn die automatische Aktualisierung auf Basis der Metadaten in der Kanalinstanz deaktiviert ist.
  • --auto-min-update-version Setze die Mindestaktualisierungsversion basierend auf native Paketen.
  • --ignore-metadata-check Ignoert die Metadaten (node_modules) Überprüfung beim Hochladen.
  • --ignore-checksum-check Ignoert die Prüfsummenüberprüfung beim Hochladen.
  • --timeout <timeout> Zeitüberschreitung für den Uploadprozess in Sekunden.
  • --delta Hochlädt Delta (Manifest)-Dateien neben dem vollständigen Bundle.
  • --delta-only Hochlädt nur Delta (Manifest)-Updates, das vollständige Bundle überspringt.
  • --no-delta Deaktiviert Delta (Manifest)-Hochladen (wird nützlich sein, wenn ein Instant-Apply-Modus aktiviert ist, aber ein vollständiges Bundle gewünscht wird). autoUpdate Hochlädt das Bundle mit dem tus-Protokoll.
  • --tus Verwendet das multipart-Protokoll, um Daten an S3 hochzuladen, veraltet, verwenden Sie TUS stattdessen.
  • --multipart Eine verschlüsselte Prüfsumme (Signatur). Wird nur verwendet, wenn ein externes Bundle hochgeladen wird.
  • --encrypted-checksum <encryptedChecksum> Ein Pfad zu package.json. Nützlich für Monorepos.
  • --package-json <packageJson> __CAPGO_KEEP_0__
  • --auto-set-bundle Setze die Bundle in capacitor.config.json.
  • --node-modules <nodeModules> Eine Liste von Pfaden zu node_modules. Nützlich für Monorepos (getrennt durch Kommata, 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 eine dritte Partei und Apps größer als 200 MB. Mit dieser Einstellung speichert Capgo nur den Link zur Zip-Datei und sendet den Link an alle Apps.

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

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

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 zu aktualisieren, wenn Sie eine neue senden, 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 Hier.

Sie können optional angeben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.

npx @capgo/cli bundle delete [appId]

[appId] Ihre App-ID im Format com.test.app erläutert hier 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-Rangliste für eine Hauptversion zu Cloud

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

[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.
  • --bundle [majorVersion] eine Version, die Sie entfernen möchten, zuvor installierte Pakete, es wird die letzte + 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 Sie npx @capgo/cli cleanup [appId] --bundle=10.0.0 es wird 10.0.1 bis 10.0.6 entfernen. 10.0.7 bis 10.0.11 wird beibehalten.

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

Diese Kommando fragt nach Bestätigung, es zeigt eine Tabelle an, was beibehalten und was entfernt wird.

Warnung: Diese Kommando 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 einen externen Quellcode verwenden, um Ihre code zu speichern, oder für Testzwecke.

Optionally, Sie können geben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] die privaten Schlüsseldaten, wenn Sie inline verwenden möchten. Die Anweisung wird Ihren ivSessionKeyy und generiert einen verschlüsselten Zip, um ihn mit dem Upload-Befehl oder dem Entschlüsselungsbefehl zu verwenden.

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

Dieser Befehl wird verwendet, wenn Sie einen externen Quellcode zum Speichern Ihrer code verwenden oder für Testzwecke. Der Prüfsummenwert ist der sha256-Wert des Pakets (erzeugt durch —key-v2), er wird verwendet, um die Integrität des Dateisystems nach der Entschlüsselung zu überprüfen. Er wird mit dem privaten Schlüssel verschlüsselt und zusammen mit dem Paket gesendet. Bei der Verschlüsselung V2 wird der Prüfsummenwert zu einem “Signatur” des Pakets aufgewertet.

Optionally, Sie können geben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] die privaten Schlüsseldaten, wenn Sie inline verwenden möchten. --json um Informationen als JSON auszugeben. Die Anweisung wird Ihren ivSessionKeyy und generiert einen verschlüsselten Zip, um ihn mit dem Upload-Befehl oder dem Entschlüsselungsbefehl zu verwenden.

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

Optionell 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 Kommandozeilenanweisung wird hauptsächlich für Testzwecke verwendet, sie wird die Zip-Datei entschlüsseln und die Base64-entschlüsselte Sitzungsschlüssel im Konsole ausgeben.

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

Optionell 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 Kommandozeilenanweisung wird hauptsächlich für Testzwecke verwendet, sie wird die Zip-Datei entschlüsseln und die Base64-entschlüsselte Sitzungsschlüssel im Konsole ausgeben. --checksum [checksum] die Prüfsumme der Datei, sie wird die Prüfsumme nach der Entschlüsselung überprüfen.

npx @capgo/cli bundle zip [appId]

[appId] Ihre App-ID, die Formatierung 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-Dateinamens festzulegen.
  • --name [myapp] den Dateinamen zu überschreiben.
  • --json die Informationen als JSON auszugeben.
  • --no-code-check die code-Überprüfung zu ignorieren und das Bundle trotzdem zu senden.
  • --key-v2 den neuen 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, die Formatierung wird erklärt hier. [channelId] Der Name Ihres neuen Kanals.

Optionell können Sie geben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.
  • --text Verwenden Sie Text anstelle von Emojis in der Tabelle
  • --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] __CAPGO_KEEP_0__ [appId] __CAPGO_KEEP_0__ in der Format com.test.app erklärt hier Löschen.

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

[channelId] __CAPGO_KEEP_0__ in der Format [appId] erklärt hier com.test.app Liste Liste.

npx @capgo/cli channel list [appId]

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

Optional können Sie geben:

  • --apikey [key] API-Schlüssel, um auf Ihr Konto zu verlinken.

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

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

Optional können Sie geben:

  • --bundle [1.2.3] Ihre App-Bundle, die bereits an den Cloud gesendet wurden, um sie einem Kanal zuzuordnen.
  • --latest erhalte die Bundle-Version package.json:version, kann nicht mit --bundle.
  • --state [ normal | default ] setze den Kanalzustand, kann normal oder default. Ein Kanal muss default.
  • --downgrade erlaubt dem Kanal, Downgrade-Versionen an Geräten zu senden.
  • --no-downgrade erlaubt dem Kanal, Downgrade-Versionen an Geräten nicht zu senden.
  • --upgrade erlaubt dem Kanal, Upgrade (große) Versionen an Geräten zu senden.
  • --no-upgrade erlaubt dem Kanal, Upgrade (große) Versionen an Geräten nicht zu senden.
  • --ios erlaubt dem Kanal, Versionen an iOS-Geräten zu senden.
  • --no-ios erlaubt dem Kanal, Versionen an iOS-Geräten nicht zu senden.
  • --android erlaubt dem Kanal, Versionen 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 dieser Kanal zuzuweisen.
  • --no-self-assign verhindert Geräten, sich selbst dieser Kanal zuzuweisen.
  • --disable-auto-update STRATEGY Deaktivieren Sie die automatische Aktualisierungsstrategie für diesen Kanal. Die möglichen Optionen sind: major, minor, metadata, none.
  • --apikey [key] API-Schlüssel, um auf Ihr Konto zuzugreifen.

Es gibt einige Möglichkeiten, um Aktualisierungen für zu alte Versionen zu deaktivieren.
Capgo kann keine native code aktualisieren, daher sollte eine Aktualisierung 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, die major Strategie. Sie verhindert eine Aktualisierung von 0.0.0 -> 1.0.0Die major ist die hervorgehobene Zahl (1.0.0 und 0.0.0).
Zweitens ist die minor Strategie. Sie verhindert eine Aktualisierung von 0.0.0 -> 1.1.0 oder eine Aktualisierung von 1.1.0 zu 1.2.0. ACHTUNG Diese Strategie verhindert keine Aktualisierung von 0.1.0 -> 1.1.0

Drittens ist die patch Strategie. Sie wurde in capgo als sehr strenger Modus hinzugefügt. Sie wird nicht empfohlen, es 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:
  • Die Hauptversion ist zwischen der neuen und der alten Version gleich
  • Die Minor-Version ist zwischen der neuen und der alten Version gleich

Hier ist ein Beispiel für Szenarien, in denen die Aktualisierung zugelassen oder abgelehnt wird.

  • 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 ❌

Zuletzt das komplexeste Szenario. Das metadata Szenario.
Zuerst müssen Sie wissen, dass die Aktualisierungen zunächst nachdem Sie es aktiviert haben, fehlschlagen werden, da der Kanal die erforderlichen Metadaten nicht enthält. WIRD Wenn der Kanal Metadaten fehlt, sehen Sie eine Nachricht wie diese:
Kann keine Metadaten finden

Wenn Sie etwas wie das sehen, wissen Sie, dass Sie zum aktuellen Bundle für den fehlenden Kanal gehen und die Metadaten setzen müssen.

Zuerst müssen Sie herausfinden, welcher Kanal fehlschlägt. Sie können das tun, indem Sie die
Spalte misconfigured Falsig konfigurierte Tabelle

Wenn Sie sehen, dass die Aktualisierung fehlschlägt, müssen Sie zum aktuellen Bundle für den fehlenden Kanal gehen und die Metadaten setzen.

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.
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 sehen:

Now, you likely do not want to set this data manually every time you update. Fortunately, the CLI will prevent you from sending an update without this metadata

Jetzt wissen Sie wahrscheinlich nicht, warum Sie diese Daten manuell jedes Mal aktualisieren möchten. Glücklicherweise wird der CLI verhindern, dass Sie eine Aktualisierung ohne diese Metadaten senden.

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

CLI-Upload mit Metadaten

Der --min-update-version ist nicht der EINZIGE Weg zur Kompatibilität. Es gibt auch den --auto-min-update-versionHier ist, wie es funktioniert.

Zuerst überprüft es die aktuell hochgeladene Version im Kanal. Es überprüft die Kompatibilität genauso wie der bundle compatibility Befehl würde. Zweitens, wenn die neue Version 100% kompatibel ist, verwendet es die min_update_version aus der letzten Version im Kanal. Wenn nicht, dann setzt es die min_update_version auf die Bundle-Nummer der neu hochgeladenen Version. Bei dieser Option erhält man immer eine Information, was die

ist. Es wird etwas wie das aussehen: min_update_version Mindestupdateversion

__CAPGO_KEEP_0__

Wenn die neue Version nicht kompatibel ist, sollte es so aussehen

Mindestupdateversion nicht kompatibel

Capgo unterstützt die End-to-End-Verschlüsselung, das 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 eine RSA-Schlüsselpaar erzeugen, Sie können den folgenden Befehl verwenden, um es zu erzeugen.

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 kannst du folgende Angaben machen: --force Um die bestehende Schlüssel zu überschreiben. Diese Anweisung erstellt für Sie ein Schlüsselpaar in Ihrer App und fragt Sie nach, wo Sie den privaten Schlüssel sicher speichern möchten. Es wird empfohlen, den privaten Schlüssel nicht in der Git-Datenbank zu speichern 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 der App-Konfiguration gespeichert haben.

Um Ihre Arbeit zu automatisieren, empfehle ich Ihnen, die GitHub-Aktion mit der Aufgabe zu beauftragen, 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