Passer au contenu

Commands

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

npx @capgo/cli@latest init [apikey]

Cette méthode est là pour vous intégrer étape par étape.

Cela ajoutera votre application à Capgo. Il ajoutera le code à votre application pour valider la mise à jour. De même, il construira votre application. De plus, votre application sera téléchargée sur Capgo. Et cela vous aidera à vérifier si la mise à jour fonctionne.

npx @capgo/cli login [apikey]

Cette méthode est là pour mémoriser le apikey pour vous.

En option, vous pouvez donner :

--local Cela stockera votre apikey dans le dépôt local et l’ignorera.

npx @capgo/cli doctor

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

Cette commande sera également utile pour le rapport de bug.

npx @capgo/cli app add [appId]

[appId] votre identifiant 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.

En option, vous pouvez donner :

  • --icon [/path/to/my/icon] pour avoir une icône personnalisée affichée dans l’application Web Capgo.
  • --name [test] pour avoir un nom personnalisé dans la liste.
  • Clé --apikey [key] API pour créer un lien vers votre compte.
  • --retention [retention] période de conservation de l’app bundle 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] est votre identifiant d’application, le format est expliqué ici.

En option, vous pouvez donner :

  • --icon [/path/to/my/icon] pour avoir une icône personnalisée affichée dans l’application Web Capgo.
  • --name [test] pour avoir un nom personnalisé dans la liste.
  • --retention [retention] période de conservation de l’app bundle en jours, 0 par défaut = infini.
  • Clé --apikey [key] API pour créer un lien vers votre compte.

npx @capgo/cli app list [appId]

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

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.

npx @capgo/cli app delete [appId]

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

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.
  • --bundle avec le numéro de version supprimera uniquement cette version.

npx @capgo/cli app debug [appId]

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

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.
  • --device avec le périphérique spécifique que vous souhaitez déboguer

npx @capgo/cli app setting [path]

Modifiez la configuration Capacitor.

[path] - chemin du paramètre que vous souhaitez modifier. Par exemple, pour modifier le appId, fournissez appId. Si vous souhaitez désactiver la mise à jour automatique dans capacitor-updater, fournissez plugins.CapacitorUpdater.autoUpdate

Vous DEVEZ fournir soit --string ou --bool !

Possibilités :

  • --string <string> - définit le paramètre sur une chaîne
  • --bool <true | false> - définit le paramètre sur un booléen

npx @capgo/cli bundle upload [appId]

[appId] est l’ID de votre application, le format est expliqué ici.

En option, vous pouvez donner :

  • Clé --apikey <apikey> API pour créer un lien vers votre compte.
  • --path <path> Chemin du dossier à télécharger.
  • --channel <channel> Canal vers lequel créer un lien.
  • --external <url> Lien vers une URL externe au lieu de télécharger vers Capgo Cloud.
  • --iv-session-key <key> Définissez la clé IV et la clé de session pour l’URL du bundle externe.
  • --s3-endpoint <s3Endpoint> URL du point de terminaison S3. Ne fonctionne pas avec les téléchargements delta ou l’option externe.
  • --s3-region <region> Région pour votre compartiment S3.
  • Clé --s3-apikey <apikey> API pour votre point de terminaison S3.
  • --s3-apisecret <apisecret> API secret pour votre point de terminaison S3.
  • --s3-bucket-name <bucketName> Nom de votre compartiment AWS S3.
  • --s3-port <port> Port pour votre point de terminaison S3.
  • --no-s3-ssl Désactivez 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 Imprime l’URL du bundle dans la sortie standard.
  • --no-key Ignorer la clé de signature et envoyer une mise à jour claire.
  • --no-code-check Ignorer la vérification si notifyAppReady() est appelé dans le code source et l’index présent dans le dossier racine.
  • --display-iv-session Afficher dans la console l’IV et la clé de session utilisées pour chiffrer la mise à jour.
  • --bundle <bundle> Numéro de version du bundle à télécharger.
  • --min-update-version <minUpdateVersion> Version minimale requise pour mettre à jour vers cette version. Utilisé uniquement si la désactivation de la mise à jour automatique est définie sur les métadonnées du canal.
  • --auto-min-update-version Définissez la version de mise à jour minimale en fonction des packages natifs.
  • --ignore-metadata-check Ignore la vérification des métadonnées (node_modules) lors du téléchargement.
  • --ignore-checksum-check Ignore la vérification de la somme de contrôle lors du téléchargement.
  • --timeout <timeout> Délai d’expiration du processus de téléchargement en secondes.
  • --delta Télécharge les fichiers Delta (manifeste) avec l’ensemble complet.
  • --delta-only Télécharge uniquement les mises à jour Delta (manifeste), en ignorant l’ensemble complet.
  • --no-delta Désactive les téléchargements Delta (manifeste) (utile si directUpdate est activé mais que vous souhaitez un bundle complet).
  • --tus Téléchargez le bundle en utilisant le protocole tus.
  • --multipart Utilise le protocole multipart pour télécharger des données vers S3, obsolète, utilisez plutôt TUS.
  • --encrypted-checksum <encryptedChecksum> Une somme de contrôle cryptée (signature). Utilisé uniquement lors du téléchargement d’un bundle externe.
  • --package-json <packageJson> Un chemin vers package.json. Utile pour les monorepos.
  • --auto-set-bundle Définissez le bundle dans condensateur.config.json.
  • --node-modules <nodeModules> Une liste de chemins vers node_modules. Utile pour les monorepos (séparés par des virgules ex : ../../node_modules,./node_modules)

⭐️ L’option externe permet de débloquer 2 cas : entreprise soucieuse de confidentialité, n’envoyez pas le code à un tiers et application de plus de 200 Mo. Avec ce paramètre, Capgo stocke uniquement le lien vers le zip et envoie le lien à toutes les applications.

👀 Capgo cloud ne regarde jamais ce qu’il y a dans le lien (pour option externe), ni dans le code une fois stocké.

🔑 Vous pouvez ajouter une deuxième couche de sécurité en utilisant le cryptage, alors Capgo ne pourra plus rien regarder ou modifier, il devient « trustless ».Exemple de package.json pour la 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 en envoyez un, le numéro de version ne peut pas être remplacé ou réutilisé après suppression pour des raisons de sécurité.

npx @capgo/cli bundle list [appId]

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

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.

npx @capgo/cli bundle delete [appId]

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

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.
  • --bundle avec le numéro de version supprimera uniquement cette version.

dans une gamme SemVer pour une version majeure vers le Cloud

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

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

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.
  • --bundle [majorVersion] une version pour laquelle vous souhaitez supprimer les packages précédents, elle conservera le dernier + numberToKeep.
  • --keep [numberToKeep] le nombre de packages que vous souhaitez conserver (4 par défaut).

Par exemple : si vous disposez de 10 versions de 10.0.1 à 10.0.11 et que vous utilisez npx @capgo/cli cleanup [appId] --bundle=10.0.0, cela supprimera 10.0.1 à 10.0.6. 10.0.7 jusqu’au 10.0.11 seront conservés.

Si vous disposez de 20 versions au total et que vous ne fournissez pas de numéro de bundle comme celui-ci : npx @capgo/cli cleanup [appId] --keep=2 Cela supprimera 18 versions et conservera les 2 dernières.

Cette commande demandera une confirmation, elle affiche un tableau de ce qu’elle va conserver et supprimer.

Avertissement : Cette commande est obsolète et sera supprimée dans la prochaine version majeure. Veuillez utiliser le nouveau système de cryptage. 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.

En option, 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 les utiliser en ligne. La commande imprimera votre ivSessionKeyy et générera un zip crypté, pour l’utiliser avec la commande upload ou la commande decryt.

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 somme de contrôle est le sha256 du bundle (généré par —key-v2), elle sert à vérifier l’intégrité du fichier après décryptage. Il sera crypté avec la clé privée et envoyé avec le bundle. Dans le chiffrement v2, la somme de contrôle est mise à niveau pour devenir une « signature » du bundle.

En option, 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 les utiliser en ligne. --json pour afficher les informations au format json. La commande imprimera votre ivSessionKeyy et générera un zip crypté, pour l’utiliser avec la commande upload ou la commande decryt.

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

En option, 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 les utiliser en ligne. Cette commande est principalement utilisée à des fins de test, elle déchiffrera le zip et imprimera la clé de session déchiffrée en base64 dans la console.

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

En option, 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 les utiliser en ligne. Cette commande est principalement utilisée à des fins de test, elle déchiffrera le zip et imprimera la clé de session déchiffrée en base64 dans la console. --checksum [checksum] la somme de contrôle du fichier, il vérifiera la somme de contrôle après le décryptage.

npx @capgo/cli bundle zip [appId]

[appId] est l’identifiant de votre application, le format est expliqué ici.

En option, vous pouvez donner :

  • --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 du nom de fichier.
  • --name [myapp] pour remplacer le nom de fichier.
  • --json pour afficher les informations au format json.
  • --no-code-check pour ignorer la vérification du code et envoyer quand même le bundle.
  • --key-v2 pour utiliser le nouveau système de cryptage. Ceci est nécessaire car le nouveau système de cryptage utilise de meilleures sommes de contrôle pour vérifier l’intégrité du fichier.

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

[appId] est l’ID de votre application, le format est expliqué ici. [channelId] le nom de votre nouvelle chaîne.

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.
  • --text utilise du texte au lieu d’émojis dans le tableau
  • --channel [channel] le canal avec lequel vérifier la compatibilité.
  • --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 ex : ../../node_modules,./node_modules)

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

[channelId] le nom de votre nouvelle chaîne. [appId] votre identifiant d’application au format com.test.app est expliqué ici.

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

[channelId] le nom de votre chaîne que vous souhaitez supprimer. [appId] votre identifiant d’application au format com.test.app est expliqué ici.

npx @capgo/cli channel list [appId]

[appId] votre identifiant d’application au format com.test.app est expliqué [ici] (https://capacitorjs.com/docs/cli/commands/init/).

En option, vous pouvez donner :

  • Clé --apikey [key] API pour créer un lien vers votre compte.

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

[appId] est l’identifiant de votre application, le format est expliqué ici.

En option, vous pouvez donner :* --bundle [1.2.3] votre app bundle déjà envoyé vers le cloud, pour le lier à une chaîne.

  • --latest obtient la version groupée de package.json:version, ne peut pas être utilisé avec --bundle.
  • --state [ normal | default ] définit l’état du canal, peut être normal ou default. Un canal doit être default.
  • --downgrade permet à la chaîne d’envoyer une version rétrogradée aux appareils.
  • --no-downgrade interdit au canal d’envoyer une version rétrogradée aux appareils.
  • --upgrade permet au canal d’envoyer une version de mise à niveau (majeure) aux appareils.
  • --no-upgrade interdit au canal d’envoyer une version de mise à niveau (majeure) aux appareils.
  • --ios permet au canal d’envoyer la version aux appareils iOS.
  • --no-ios interdit au canal d’envoyer la version aux appareils iOS.
  • --android permet à la chaîne d’envoyer la version aux appareils Android.
  • --no-android interdit à la chaîne d’envoyer la version aux appareils Android.
  • --self-assign permet aux appareils de s’auto-attribuer à ce canal.
  • --no-self-assign interdit aux appareils de s’auto-attribuer à ce canal.
  • --disable-auto-update STRATEGY Désactive la stratégie de mise à jour automatique pour cette chaîne. Les options possibles sont : majeure, mineure, métadonnées, aucune.
  • Clé --apikey [key] API pour créer un lien vers votre compte.

## Désactiver la stratégie de mises à jour

Il existe plusieurs façons de gérer la désactivation des mises à jour pour les versions trop anciennes.
Capgo ne peut pas mettre à jour le code natif, donc une mise à jour d’une version avec l’ancien code natif vers une version avec le code natif mis à jour ne devrait pas être possible. Il existe plusieurs façons d’y parvenir.

Tout d’abord, la stratégie major. Cela empêche une mise à jour depuis 0.0.0 -> 1.0.0. Le majeur est le nombre en surbrillance (1.0.0 et 0.0.0).
La deuxième est la stratégie minor. Il 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 n’empêche pas une mise à jour depuis 0.1.0 -> 1.1.0

Troisièmement, la stratégie patch. Il a été ajouté à capgo comme mode très strict. Son utilisation n’est pas recommandée à moins que vous compreniez parfaitement son fonctionnement. Pour qu’il accepte une mise à jour, les conditions suivantes doivent être remplies :

  • La majeure est la même entre la nouvelle et l’ancienne version
  • La mineure est la même entre la nouvelle et l’ancienne version
  • Le patch de la nouvelle version s’il est supérieur au patch de l’ancienne version

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 stratégie metadata.
Vous devez d’abord savoir qu’après l’avoir activé, les mises à jour Échoueront car le canal ne dispose pas des métadonnées requises.
Si la chaîne 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 ceci, vous savez que vous devez accéder au bundle actuel pour le canal défaillant et définir les métadonnées.
Tout d’abord, déterminez quel canal est en panne. Vous pouvez le faire en consultant la colonne misconfigured Tableau mal configuréAccédez ensuite au canal défaillant et cliquez sur « Numéro du bundle ». Cela devrait vous amener à la page du forfait.

Localiser le canal défaillant

Une fois sur place, remplissez le champ « Version de mise à jour minimale ». Cela devrait être un semver.
Si la valeur que vous transmettez 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

Désormais, vous ne souhaiterez probablement pas définir ces données manuellement à chaque mise à jour. Heureusement, le CLI vous empêchera d’envoyer une mise à jour sans ces métadonnées

CLI échoue sans métadonnées

Pour télécharger correctement un bundle lorsque vous utilisez l’option metadata, vous devez transmettre le --min-update-version avec le semver valide. Quelque chose comme ça :

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

Le --min-update-version n’est pas le SEUL moyen d’assurer la compatibilité. Il existe également le --auto-min-update-version. Voici comment cela fonctionne.

Tout d’abord, il examine la version actuellement téléchargée sur la chaîne. Il vérifie la compatibilité de la même manière que le ferait la commande « bundle compatibilité ». Deuxièmement, si la nouvelle version est 100 % compatible, elle réutilise le min_update_version de la dernière version du canal. Sinon, il définit min_update_version sur le numéro de bundle de la version nouvellement téléchargée.

Vous obtiendrez toujours une information sur ce qu’est le min_update_version lorsque vous utilisez cette option. Cela ressemblera à ceci :

Version de mise à jour minimale

Si la nouvelle version n’est pas compatible, cela devrait ressembler à ceci

Version de mise à jour minimale incompatible

Chiffrement de bout en bout (sans confiance)

Section titled “Chiffrement de bout en bout (sans confiance)”

Capgo prend en charge le cryptage de bout en bout, cela signifie que votre bundle (code) est crypté avant d’être envoyé vers le cloud et déchiffré sur l’appareil. Pour cela, vous devez générer une paire de clés RSA, vous pouvez utiliser la commande suivante pour la générer.

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

Voir ci-dessous pour plus d’informations sur le système de cryptage.

Comment fonctionne la cryptographie

Schéma de chiffrement

npx @capgo/cli key create

En option, vous pouvez donner : --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 valider la clé privée et de ne 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

Enregistrez la clé dans la configuration de votre application

Section titled “Enregistrez la clé dans la configuration de votre application”

npx @capgo/cli key save

En option, vous pouvez donner :

--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 les utiliser en ligne. Cette commande est utile si vous avez suivi la recommandation et n’avez pas validé la clé dans la configuration de votre application.

Pour automatiser votre travail, je vous recommande de faire en sorte que l’action GitHub fasse le travail de transmission vers notre serveur

Tutoriel d’action GitHub

GitHub - Cap-go/demo-app

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