Sauter au contenu

Commandes

Toutes les commandes doivent être exécutées dans le dossier de votre application avec capacitor projet allumé correctement.

npx @capgo/cli@latest init [apikey]

Cette méthode est conçue pour vous guider étape par étape.

Elle ajoutera votre application à Capgo. Elle ajoutera le code à votre application pour valider la mise à jour. De même, elle construira votre application. De plus, elle téléchargera votre application sur Capgo. Et elle vous aidera à vérifier si la mise à jour fonctionne.

npx @capgo/cli login [apikey]

Cette méthode est ici pour vous rappeler le apikey pour vous.

Optionnellement vous pouvez donner :

--local Cela stockera votre apikey dans le dépôt local et l'ignore dans Git.

npx @capgo/cli doctor

Commande pour vérifier si vous êtes à jour avec les Capgo paquets.

Cette commande sera également utile pour les rapports de bogues.

npx @capgo/cli app add [appId]

[appId] votre ID d'application au format com.test.app est expliqué ici.

💡 Toutes les options seront devinées dans votre configuration si elles ne sont pas fournies.

Optionnellement, vous pouvez fournir :

  • --icon [/path/to/my/icon] to have a custom icon display in Capgo web app.
  • --name [test] avoir un nom personnalisé dans la liste.
  • --apikey [key] API clé pour se connecter à votre compte.
  • --retention [retention] durée de conservation de l'archive de l'application en jours, 0 par défaut = infini.

Exemple de capacitor.config.json pour appId et AppName, l'icône est devinée dans le dossier des ressources

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

npx @capgo/cli app set [appId]

[appId] c'est votre ID d'application, la forme est expliquée ici.

Optionnellement, vous pouvez donner :

  • --icon [/path/to/my/icon] to have a custom icon display in Capgo web app.
  • --name [test] avoir un nom personnalisé dans la liste.
  • --retention [retention] durée de conservation de l'archive de l'application en jours, 0 par défaut = infini.
  • --apikey [key] API clé pour se connecter à votre compte.

npx @capgo/cli app list [appId]

[appId] l'ID de votre application au format com.test.app est expliqué ici.

Optionnellement, vous pouvez donner :

  • --apikey [key] API clé pour se connecter à votre compte.

npx @capgo/cli app delete [appId]

[appId] votre ID d'application au format com.test.app est expliqué ici.

Optionnellement, vous pouvez fournir :

  • --apikey [key] API clé pour se connecter à votre compte.
  • --bundle avec le numéro de version ne supprimera que cette version.

npx @capgo/cli app debug [appId]

[appId] votre ID d'application au format com.test.app est expliqué ici.

Vous pouvez également fournir :

  • --apikey [key] API clé pour se connecter à votre compte.
  • --device avec le dispositif spécifique que vous souhaitez déboguer

npx @capgo/cli app setting [path]

Modifier la configuration Capacitor.

[path] - Chemin du paramètre que vous souhaitez modifier. Par exemple, pour modifier le appIdFournir appIdSi vous souhaitez désactiver la mise à jour automatique dans le capacitor-updaterFournir plugins.CapacitorUpdater.autoUpdate Avec --string off.

Vous DEVEZ fournir l'un ou l'autre --string ou --bool!

Options :

  • --string <string> - définit la configuration à une chaîne
  • --bool <true | false> - définit la configuration à un booléen

npx @capgo/cli bundle upload [appId]

[appId] c'est votre ID d'application, la forme est expliquée ici.

Vous pouvez optionnellement donner :

  • --apikey <apikey> API clé pour se connecter à votre compte.
  • --path <path> Chemin du dossier à télécharger.
  • --channel <channel> Canal à lier.
  • --external <url> Lier à une URL externe au lieu de télécharger sur Capgo Cloud.
  • --iv-session-key <key> Définir la clé de chiffrement et la clé de session pour l'URL du paquet externe.
  • --s3-endpoint <s3Endpoint> URL de l'endpoint S3. Ne fonctionne pas avec les téléchargements delta ou l'option externe.
  • --s3-region <region> Région pour votre bac S3.
  • --s3-apikey <apikey> API clé pour votre endpoint S3.
  • --s3-apisecret <apisecret> API secret pour votre endpoint S3.
  • --s3-bucket-name <bucketName> Nom de votre bac S3 AWS.
  • --s3-port <port> Port pour votre endpoint S3.
  • --no-s3-ssl Désactiver SSL pour le téléchargement S3.
  • --key <key> Chemin personnalisé pour la clé de signature publique (système v1).
  • --key-data <keyData> Clé de signature publique (système v1).
  • --key-v2 <key> Chemin personnalisé pour la clé de signature privée (système v2).
  • --key-data-v2 <keyData> Clé de signature privée (système v2).
  • --bundle-url Affiche l'URL du bundle dans la sortie standard.
  • --no-key Ignore la clé de signature et envoie une mise à jour claire.
  • --no-code-check Ignore la vérification si notifyAppReady() est appelé dans le source code et l'index est présent dans le dossier racine.
  • --display-iv-session Affiche dans la console la clé de session et l'IV utilisés pour chiffrer la mise à jour.
  • --bundle <bundle> Numéro de version du bundle à télécharger.
  • --min-update-version <minUpdateVersion> Numéro de version minimale requise pour mettre à jour vers cette version. Utilisé uniquement si la mise à jour automatique est désactivée dans le canal.
  • --auto-min-update-version Fixe la version de mise à jour minimale basée sur les packages natifs.
  • --ignore-metadata-check Ignore la vérification des métadonnées (node_modules) lors de l'upload.
  • --ignore-checksum-check Ignore la vérification de la somme de contrôle lors de l'upload.
  • --timeout <timeout> Durée de temps d'attente pour le processus d'upload en secondes.
  • --delta Envoie les fichiers Delta (manifest) ainsi que le bundle complet.
  • --delta-only Envoie uniquement les mises à jour Delta (manifest), en ignorant le bundle complet.
  • --no-delta Désactive les uploads de fichiers Delta (manifest) (utile si un mode d'application instantanée est activé mais que vous souhaitez un bundle complet). autoUpdate Envoie le bundle en utilisant le protocole TUS.
  • --tus Utilise le protocole multipart pour envoyer des données vers S3, obsolète, utilisez TUS à la place.
  • --multipart Un hachage chiffré (signature). Utilisé uniquement lors de l'upload d'un bundle externe.
  • --encrypted-checksum <encryptedChecksum> Un chemin vers package.json. Utile pour les monorepos.
  • --package-json <packageJson> Fixe le bundle dans __CAPGO_KEEP_0__.config.json.
  • --auto-set-bundle Set the bundle in capacitor.config.json.
  • --node-modules <nodeModules> Option externe qui aide à déverrouiller 2 cas : les entreprises avec des préoccupations de confidentialité, ne pas envoyer le __CAPGO_KEEP_0__ à un tiers et les applications plus grandes que 200 MB. Avec cette configuration, __CAPGO_KEEP_1__ stocke uniquement le lien vers le zip et envoie le lien à toutes les applications.

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

👀 Capgo le cloud ne regarde jamais ce qui se trouve dans le lien (pour option externe), ou dans le code lorsqu'il est stocké.

🔑 Vous pouvez ajouter une deuxième couche de sécurité en utilisant l'encryption, puis Capgo ne pourra pas regarder ou modifier quoi que ce soit, il devient “sans confiance”.

Exemple de package.json pour version

{
"version": "1.0.2"
}

⛔ La version doit être supérieure à “0.0.0”.

💡 N'oubliez pas de mettre à jour le numéro de version chaque fois que vous envoyez un, le numéro de version ne peut pas être surchargé, ou réutilisé après suppression pour des raisons de sécurité.

npx @capgo/cli bundle list [appId]

[appId] votre ID d'application au format com.test.app est expliqué ici.

Optionnellement, vous pouvez fournir :

  • --apikey [key] API clé pour se connecter à votre compte.

npx @capgo/cli bundle delete [appId]

[appId] votre ID d'application sous la forme com.test.app est expliqué ici.

Optionnellement, vous pouvez fournir :

  • --apikey [key] API clé pour se connecter à votre compte.
  • --bundle avec le numéro de version ne supprimera que cette version.

dans une plage de version SemVer pour une version majeure vers Cloud

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

[appId] votre ID d'application au format com.test.app est expliqué ici.

Optionnellement, vous pouvez donner :

  • --apikey [key] API clé pour se connecter à votre compte.
  • --bundle [majorVersion] une version que vous souhaitez supprimer les packages précédents pour, il gardera le dernier + numberToKeep.
  • --keep [numberToKeep] le nombre de packages que vous souhaitez conserver (par défaut 4).

Par exemple : Si vous avez 10 versions de 10.0.1 à 10.0.11, et vous utilisez npx @capgo/cli cleanup [appId] --bundle=10.0.0 ceci supprimera 10.0.1 à 10.0.6. 10.0.7 jusqu'à 10.0.11 sera conservé.

Si vous avez 20 versions au total, et vous ne fournissez pas un numéro de bundle comme ceci : npx @capgo/cli cleanup [appId] --keep=2 Il supprimera 18 versions, et gardera les 2 dernières.

Cette commande demandera confirmation, elle affichera une table de ce qu'elle gardera et supprimera.

AvertissementCette commande est obsolète et sera supprimée dans la prochaine version majeure. Veuillez utiliser le nouveau système de chiffrage. npx @capgo/cli bundle encrypt [path/to/zip]

Cette commande est utilisée lorsque vous utilisez une source externe pour stocker votre code ou à des fins de test.

Optionnellement, vous pouvez fournir :

--key [/path/to/my/private_key] le chemin de votre clé privée. --key-data [privateKey] les données de la clé privée, si vous souhaitez utiliser inline. La commande affichera votre ivSessionKeyet générer un zip chiffré, pour l'utiliser avec la commande de téléchargement ou la commande de décryptage.

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

Cette commande est utilisée lorsque vous utilisez une source externe pour stocker votre code ou à des fins de test. La checksum est le sha256 du bundle (généré par —key-v2), il est utilisé pour vérifier l'intégrité du fichier après décryptage. Il sera chiffré avec la clé privée et envoyé avec le bundle. Dans la chiffrage v2, la checksum est améliorée pour devenir une « signature » du bundle.

Optionnellement, vous pouvez donner :

--key [/path/to/my/private_key] le chemin de votre clé privée. --key-data [privateKey] les données de la clé privée, si vous souhaitez l'utiliser inline. --json pour afficher les informations sous forme de JSON. La commande imprimer votre ivSessionKeyet générer un zip chiffré, pour l'utiliser avec la commande de téléchargement ou la commande de décryt.

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

Optionnellement, vous pouvez donner :

--key [/path/to/my/private_key] le chemin de votre clé privée.

--key-data [privateKey] les données de la clé privée, si vous souhaitez l'utiliser en ligne. Cette commande est principalement utilisée à des fins de test, elle déchiffrera le zip et affichera la clé de session déchiffrée en base64 dans la console.

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

Optionnellement, vous pouvez donner :

--key [/path/to/my/private_key] le chemin de votre clé privée. --key-data [privateKey] les données de la clé privée, si vous souhaitez l'utiliser en ligne. Cette commande est principalement utilisée à des fins de test, elle déchiffrera le zip et affichera la clé de session déchiffrée en base64 dans la console. --checksum [checksum] le checksum du fichier, il vérifiera le checksum après déchiffrement.

npx @capgo/cli bundle zip [appId]

[appId] est votre ID d'application, la forme est expliquée ici.

Vous pouvez également fournir :

  • --path [/path/to/my/bundle] pour télécharger un dossier spécifique.
  • --bundle [1.0.0] pour définir le numéro de version du bundle dans le nom du fichier.
  • --name [myapp] pour remplacer le nom du fichier.
  • --json pour afficher les informations sous forme de JSON.
  • --no-code-check pour ignorer la vérification code et envoyer le bundle malgré tout.
  • --key-v2 pour utiliser le nouveau système de cryptage. Cela est requis car le nouveau système de cryptage utilise des sommes de contrôle améliorées pour vérifier l'intégrité du fichier.

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

[appId] c&#39;est votre ID d&#39;application, la forme est expliquée ici. [channelId] le nom de votre nouveau canal.

Vous pouvez également donner :

  • --apikey [key] API clé pour se connecter à votre compte.
  • --text Utiliser du texte au lieu d'émoticônes dans le tableau
  • --channel [channel] Le canal pour vérifier la compatibilité avec.
  • --package-json <packageJson> Un chemin vers package.json. Utile pour les monorepos
  • --node-modules <nodeModules> Une liste de chemins vers node_modules. Utile pour les monorepos (séparés par des virgules, par exemple : ../../node_modules,./node_modules)

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

[channelId] Le nom de votre nouveau canal. [appId] Votre ID d'application au format com.test.app est expliqué ici.

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

[channelId] le nom de votre canal que vous souhaitez supprimer. [appId] votre ID d'application au format com.test.app est expliqué ici.

npx @capgo/cli channel list [appId]

[appId] votre ID d'application au format com.test.app est expliqué ici.

Optionnellement, vous pouvez fournir :

  • --apikey [key] API clé pour se connecter à votre compte.

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

[appId] est votre ID d'application, la forme est expliquée ici.

Optionnellement, vous pouvez fournir :

  • --bundle [1.2.3] votre bundle d'application déjà envoyé dans le cloud, pour le lier à un canal.
  • --latest obtenir la version du bundle à partir de package.json:version, ne peut pas être utilisé avec --bundle.
  • --state [ normal | default ] définir l'état du canal, peut être normal ou default. Une seule chaîne doit être default.
  • --downgrade permet à la chaîne d'envoyer une version downgrade aux appareils.
  • --no-downgrade interdit à la chaîne d'envoyer une version downgrade aux appareils.
  • --upgrade permet à la chaîne d'envoyer une version d'upgrade (majeure) aux appareils.
  • --no-upgrade interdit à la chaîne d'envoyer une version d'upgrade (majeure) aux appareils.
  • --ios permet à la chaîne d'envoyer une version aux appareils iOS.
  • --no-ios interdit à la chaîne d'envoyer une version aux appareils iOS.
  • --android permet à la chaîne d'envoyer une version aux appareils Android.
  • --no-android interdit à la chaîne d'envoyer une version aux appareils Android.
  • --self-assign permet aux appareils de s'assigner automatiquement à cette chaîne.
  • --no-self-assign interdit aux appareils de s'assigner automatiquement à cette chaîne.
  • --disable-auto-update STRATEGY Désactiver la stratégie d'actualisation automatique pour ce canal. Les options possibles sont : majeur, mineur, métadonnées, aucun.
  • --apikey [key] API clé pour se connecter à votre compte.

Il existe quelques façons de gérer la désactivation des mises à jour pour les versions trop anciennes.
Capgo ne peut pas mettre à jour les code natifs, il est donc impossible d'effectuer une mise à jour d'une version avec les anciens code natifs vers une version avec les code natifs mis à jour. Il existe plusieurs façons d'y parvenir.

Premièrement, la major stratégie. Elle empêche une mise à jour de 0.0.0 -> 1.0.0. Le majeur est le numéro mis en surbrillance (1.0.0 et 0.0.0).
Deuxièmement, la minor stratégie. Elle empêche une mise à jour de 0.0.0 -> 1.1.0 ou une mise à jour de 1.1.0 vers 1.2.0. ATTENTION Cette stratégie ne prévient pas une mise à jour de 0.1.0 -> 1.1.0

Troisièmement, la patch stratégie. Elle a été ajoutée dans capgo sous la forme d'un mode très strict. Il ne faut pas l'utiliser à moins de bien comprendre comment elle fonctionne. Pour qu'elle accepte une mise à jour, les conditions suivantes doivent être remplies :

  • Le numéro majeur est le même entre la nouvelle et la version ancienne
  • Le numéro mineur est le même entre la nouvelle et la version ancienne
  • Le numéro de patch de la nouvelle version est supérieur au numéro de patch de la version ancienne

Voici un exemple de scénarios dans lesquels la mise à jour est autorisée ou refusée

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

Enfin, la stratégie la plus compliquée. La metadata stratégie.
Tout d'abord, vous devez savoir que les mises à jour initiales après avoir activé cette fonctionnalité ne fonctionneront pas car le canal manque de métadonnées nécessaires. __CAPGO_KEEP_0__ Si le canal manque de métadonnées, vous verrez un message comme celui-ci :
Impossible de trouver les métadonnées

Si vous voyez quelque chose comme cela, vous savez que vous devez aller dans le bundle actuel du canal qui ne fonctionne pas et configurer les métadonnées.

Tout d'abord, déterminez quel canal ne fonctionne pas. Vous pouvez le faire en regardant la
table des canaux mal configurés misconfigured Ensuite, allez dans le canal qui ne fonctionne pas et cliquez sur

Cela devrait vous emmener sur la page du bundle.

Localisez le canal qui ne fonctionne pas Bundle numbercolumn

Misconfigured table

Remplissez ensuite ce champ. Minimal update version Ce doit être un Si la valeur que vous passez n'est pas un semver, vous obtiendrez une erreur, mais si tout se passe correctement, vous devriez voir quelque chose comme ceci :.
Définir la version minimale

Il est probable que vous ne souhaitiez pas définir ce champ manuellement chaque fois que vous mettez à jour. Heureusement, le __CAPGO_KEEP_0__ empêchera de vous de vous envoyer une mise à jour sans ce métadonnée

CLI fail sans métadonnée

CLI fail no metadata

avec le metadata semver valide --min-update-version Comme ceci : Set min versionOnce there fill the

CLI téléchargement avec métadonnées

Le --min-update-version ce n'est pas la VOIE UNIQUE pour faire la compatibilité. Il existe également la --auto-min-update-version. Voici comment ça marche.

Premièrement, il regarde la version actuellement téléchargée sur le canal. Il vérifie la compatibilité de la même manière que bundle compatibility commande le ferait. Deuxièmement, si la nouvelle version est 100% compatible, il réutilise la min_update_version de la version la plus récente du canal. Si ce n'est pas le cas, alors il définit la min_update_version au numéro de paquet de la nouvelle version téléchargée.

Vous obtiendrez toujours des informations sur la min_update_version lorsque vous utilisez cette option. Elle ressemblera à ceci :

Mise à jour minimale

Si la nouvelle version n'est pas compatible, elle devrait ressembler à ceci

La version d'update minimale n'est pas compatible

Capgo prend en charge le chiffrement de bout en bout, ce qui signifie que votre bundle (code) est chiffré avant d'être envoyé dans le cloud et déchiffré sur le dispositif. Pour cela, vous devez générer un paire de clés RSA, vous pouvez utiliser la commande suivante pour la générer.

Le système de chiffrement est une combinaison de RSA et AES, la clé RSA est utilisée pour chiffrer la clé AES, et la clé AES est utilisée pour chiffrer le fichier.

Voir ci-dessous pour plus d'informations sur le système de chiffrement.

Comment fonctionne le cryptage

Schéma de chiffrement

npx @capgo/cli key create

Optionnellement, vous pouvez fournir : --force pour écraser la clé existante. Cette commande créera pour vous une paire de clés dans votre application, et vous demandera de sauvegarder la clé privée dans un endroit sûr. Il est recommandé de ne pas commit la clé privée dans Git, et de ne pas la partager avec personne.

Après votre test local, supprimez la clé du fichier de configuration et ajoutez-la à l'étape CI avec key save

Sauvegardez la clé dans la configuration de votre application

Section intitulée « Sauvegardez la clé dans la configuration de votre application »

npx @capgo/cli key save

Optionnellement, vous pouvez fournir :

--key [/path/to/my/public_key] le chemin de votre fichier de clé publique.

--key-data [publicKey] les données de la clé publique, si vous souhaitez l'utiliser inline. Cette commande est utile si vous avez suivi la recommandation et n'avez pas commit la clé dans la configuration de votre application.

Pour automatiser votre travail, je vous recommande de faire que l'action GitHub s'occupe de la tâche de pousser vers notre serveur

Tutoriel de l'action GitHub

GitHub - Cap-go/demo-app

N'oubliez pas de configurer la variable d'environnement CI avec votre clé API

Si vous utilisez les Commandes pour planifier votre tableau de bord et les opérations __CAPGO_KEEP_0__, connectez-le avec API Vue d'ensemble pour les détails d'implémentation dans API Vue d'ensemble, for the implementation detail in API Overview, pour les détails d'implémentation dans Introduction, __CAPGO_KEEP_0__ Clés Don’t forget to configure CI env variable with your API key pour les détails d'implémentation dans les API clés, Appareils pour les détails d'implémentation dans les Appareils, et Paquets pour les détails d'implémentation dans les Paquets.