Passer à la navigation

Commandes

Cette page est une vue d'ensemble guidée. Utilisez la référence de commande actuelle pour les drapeaux exacts : app, bundle, canal, et build.

Toutes les commandes doivent être exécutées dans le dossier de votre application avec le projet capacitor 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. En outre, elle téléchargera votre application sur Capgo. Et elle vous aidera à vérifier si la mise à jour fonctionne.

npx @capgo/cli login [apikey]

Titre de la section « Connexion » apikey Cette méthode est conçue pour vous rappeler votre __CAPGO_KEEP_0__.

Optionnellement, vous pouvez fournir :

--local Cela stockera votre apikey dans le dépôt local et l'ignorera 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 donner :

  • --icon [/path/to/my/icon] pour avoir un icône personnalisé affiché dans l'application web Capgo.
  • --name [test] pour avoir un nom personnalisé dans la liste.
  • --apikey [key] l’API clé pour se connecter à votre compte.
  • --retention [retention] La période de conservation du bundle d'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] est votre ID d'application, la forme est expliquée ici.

Optionnellement, 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] La période de conservation du bundle d'application en jours, 0 par défaut = infini.
  • --expose-metadata [true|false] exposer les métadonnées du bundle (lien et commentaire) au plugin.
  • --preview ou --no-preview Quels sont les avantages de nos solutions alternatives ? Nous vous proposons des solutions alternatives pour répondre à vos besoins spécifiques. Nous sommes là pour vous aider à trouver la solution qui convient le mieux à vos besoins.
  • --allow-device-custom-id ou --no-allow-device-custom-id pour contrôler les identifiants de dispositif personnalisés.
  • --block-provider-infra-requests ou --no-block-provider-infra-requests pour bloquer les requêtes de centres de données Google et Apple connus.
  • --build-timeout-minutes [5-360] pour configurer le temps d'attente de la construction native.
  • --ios-store-url [url] ou --android-store-url [url] pour configurer le temps d'attente de la construction native.
  • --default-upload-channel [channel] pour configurer l'URL de la boutique.
  • --default-download-channel [channel] pour configurer le canal d'upload par défaut. --disable-download-channels pour rendre tous les canaux de téléchargement non publics.
  • --apikey [key] la clé API pour vous connecter à votre compte.

npx @capgo/cli app list [appId]

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

Optionnellement, vous pouvez donner :

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

npx @capgo/cli app delete [appId]

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

Optionnellement, vous pouvez donner :

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

npx @capgo/cli app debug [appId]

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

Optionnellement, vous pouvez donner :

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

npx @capgo/cli app setting [path]

Éditez la configuration du 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 le capacitor-updater, fournissez plugins.CapacitorUpdater.autoUpdate avec --string off.

Vous devez fournir soit --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] Votre ID d'application, le format est expliqué ici.

Optionnellement, vous pouvez donner :

  • --apikey <apikey> API clé pour se connecter à votre compte.
  • --path <path> Chemin du dossier à télécharger.
  • --channel <channel> Canal à relier.
  • --external <url> Link vers l'URL externe au lieu de télécharger vers Capgo Cloud.
  • --iv-session-key <key> Définir la clé de session 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 conteneur S3.
  • --s3-apikey <apikey> API clé pour votre point de terminaison S3.
  • --s3-apisecret <apisecret> API secret pour votre point de terminaison S3.
  • --s3-bucket-name <bucketName> Nom pour votre conteneur S3 AWS.
  • --s3-port <port> Port pour votre point de terminaison 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 Envoie une mise à jour claire sans tenir compte de la clé de signature.
  • --no-code-check Omet la vérification si notifyAppReady() est appelé dans le code source et l'index est présent dans le dossier root.
  • --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.
  • --auto-bump [level] Numéro de version du bundle à télécharger. major, minor Version du bundle liée au canal, sinon la dernière version d'app distant. Niveau : patch (par défaut), fix), metadata(alias) ai (Workers AI compares local files to the previous Capgo/channel delta manifest, infers the level, and logs a short reason; skips AI and bumps patch (Workers AI compare les fichiers locaux avec le précédent Capgo/canal delta manifest, infère le niveau et affiche une brève raison ; ignore l'IA et augmente le niveau si aucun précédent Capgo n'est trouvé). Augmente jusqu'à trouver un nom disponible (les noms supprimés restent occupés). Ne peut pas être combiné avec --bundle.
  • --min-update-version <minUpdateVersion> La 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 en fonction des packages natifs.
  • --ignore-metadata-check Igore la vérification des métadonnées (node_modules) lors de l'upload.
  • --ignore-checksum-check Igore la vérification du checksum lors de l'upload.
  • --timeout <timeout> Temps d'attente pour le processus d'upload en secondes.
  • --delta Envoie les fichiers Delta (manifest) aux côtés du bundle complet.
  • --delta-only Envoie uniquement les mises à jour Delta (manifest), en ignorant le bundle complet.
  • --no-delta Désactive les uploads Delta (manifest) (utile si un mode d'application instantané 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 à S3, obsolète, utilisez TUS à la place.
  • --multipart Un checksum chiffré (signature). Utilisé uniquement lors de l'upload d'un bundle externe.
  • --encrypted-checksum <encryptedChecksum> Utilise le protocole multipart pour envoyer des données à S3, obsolète, utilisez TUS à la place.
  • --package-json <packageJson> Acheminez un chemin vers package.json. Utile pour les monoproduits.
  • --auto-set-bundle Fixez le bundle dans capacitor.config.json.
  • --node-modules <nodeModules> Une liste de chemins vers node_modules. Utile pour les monoproduits (séparés par des virgules, par exemple : ../../node_modules,./node_modules)

Option externe aide à déverrouiller 2 cas : les entreprises avec des préoccupations de confidentialité, n'envoyez pas le code à une tierce partie et les applications plus grandes que 200 MB. Avec cette configuration, Capgo stocke uniquement le lien vers le zip et envoie le lien à toutes les applications.

Capgo cloud ne regarde jamais ce qui se trouve dans le lien (pour l'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 la version

{
"version": "1.0.2"
}

La version doit être supérieure à « 0.0.0 ».

Souvenez-vous 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é.

Liste

Liste

npx @capgo/cli bundle list [appId]

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

Optionnellement, vous pouvez fournir :

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

Supprimer

Liste

npx @capgo/cli bundle delete [appId]

[appId] identifiant de votre 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, cela supprimera uniquement 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] 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.
  • --bundle [majorVersion] une version que vous souhaitez supprimer les packages précédents pour, cela gardera le dernier + numberToKeep.
  • --keep [numberToKeep] le nombre de packages que vous souhaitez garder (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 Ce qui 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 n'avez pas fourni un numéro de bundle comme ceci : npx @capgo/cli cleanup [appId] --keep=2 Cela supprimera 18 versions, et conservera les 2 dernières.

Cette commande demandera confirmation, elle affichera une table de ce qui sera conservé et supprimé.

Avertissement: Cette 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 votre clé privée, si vous souhaitez l'utiliser en ligne direct. ivSessionKeyLa commande imprime votre

y et génère un zip chiffré, pour l'utiliser avec la commande d'importation ou la commande de décryptage.

Chiffrer V2

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

This command is used when you use external source to store your code or for test purpose. The checksum is the sha256 of the bundle (generated by —key-v2), it is used to verify the integrity of the file after decryption. It will be enncrypted with the private key and sent along with the bundle. In encryption v2 the checksum is upgraded to become a “signature” of the bundle.

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

--key [/path/to/my/private_key] Le checksum est la sha256 du bundle (généré par —key-v2), il est utilisé pour vérifier l'intégrité du fichier après décryptage. --key-data [privateKey] Il sera chiffré avec la clé privée et envoyé avec le bundle. --json Dans la chiffrer v2, le checksum est mis à jour pour devenir une « signature » du bundle. 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 decrypt [path/to/zip] [ivSessionKey]

Vous pouvez optionnellement fournir :

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

--key-data [privateKey] les données de votre 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écryptée en base64 dans la console.

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

Vous pouvez optionnellement fournir :

--key [/path/to/my/private_key] le chemin de votre clé privée. --key-data [privateKey] les données de votre 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écryptée en base64 dans la console. --checksum [checksum] le checksum du fichier, il vérifiera le checksum après la décryptage.

npx @capgo/cli bundle zip [appId]

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

Optionnellement, 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 paquet dans le nom du fichier.
  • --name [myapp] pour définir le nom du fichier.
  • --json pour afficher les informations sous forme de JSON.
  • --no-code-check pour ignorer la vérification de code et envoyer le paquet 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 plus fiables pour vérifier l'intégrité du fichier.

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

[appId] est votre ID d'application, la forme est expliquée ici. [channelName] le nom du canal à vérifier.

Optionnellement, vous pouvez donner :

  • --apikey [key] API clé pour se connecter à votre compte.
  • --text utilisez du texte au lieu d'émoticônes dans le tableau
  • --channel [channel] le canal à 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 [channelName] [appId]

[channelName] le nom de votre nouveau canal, tel que production ou beta. [appId] ou comment créer un nouveau canal ? com.test.app la forme de votre ID d'application est expliquée.

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

[channelName] Section intitulée « Supprimer » [appId] le nom du canal que vous souhaitez supprimer. com.test.app la forme de votre ID d'application ici.

npx @capgo/cli channel list [appId]

[appId] la forme de votre ID d'application est expliquée com.test.app ici Vous pouvez également donner :.

__CAPGO_KEEP_0__ clé pour lier à votre compte.

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

Section intitulée « Définir »

votre ID d'application, la forme est expliquée

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

[appId] ici Optionnellement, vous pouvez donner :. [channelName] le nom du canal que vous souhaitez configurer, comme production ou beta.

Optionnellement, vous pouvez fournir :

  • --bundle [1.2.3] votre application bundle 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 ] mettre à jour l'état du canal, peut être normal ou default, doit être utilisé avec default.
  • --downgrade ne permet pas au canal de transmettre une version de dégradation aux appareils.
  • --no-downgrade ne permet pas au canal de transmettre une version de dégradation aux appareils.
  • --upgrade permet au canal de transmettre une version d'amélioration (majeure) aux appareils.
  • --no-upgrade interdit au canal d'envoyer la version majeure (major) à des appareils.
  • --ios permet au canal d'envoyer une version à des appareils iOS.
  • --no-ios interdit au canal d'envoyer une version à des appareils iOS.
  • --android permet au canal d'envoyer une version à des appareils Android.
  • --no-android interdit au canal d'envoyer une version à des appareils Android.
  • --self-assign permet aux appareils de s'attribuer automatiquement à ce canal.
  • --no-self-assign interdit aux appareils de s'attribuer automatiquement à ce canal.
  • --disable-auto-update STRATEGY Désactive la stratégie d'actualisation automatique pour ce canal. Les options possibles sont : major, mineur, patch, 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 des versions trop anciennes.
Capgo ne peut pas mettre à jour les natives code donc une mise à jour d'une version avec les anciennes natives code vers une version avec les natives mises à jour code ne devrait pas être possible. Il existe plusieurs façons d'y parvenir.

Premièrement, la major stratégie. Elle empêche une mise à jour de la base native 0.0.0 -> bundle cible 1.0.0. Le numéro 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 lorsque le bundle cible a un numéro majeur ou mineur différent de la base native du dispositif, comme 0.0.0 -> 1.1.0 ou 1.1.0 -> 1.2.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 le bundle cible et version_build
  • La mineure est la même entre le bundle cible et version_build
  • La patch est la même entre le bundle cible et version_build
  • Seul le suffixe de version peut différer, comme les préversions (-beta.2) ou les métadonnées de construction (+build.2)

Ici est un exemple de scénarios dans lesquels l'update est autorisé ou refusé

  • 1.0.0-beta.1 -> 1.0.0-beta.2 autorisé
  • 1.0.0+build.1 -> 1.0.0+build.2 autorisé
  • 1.0.0 -> 1.0.1 bloqué
  • 1.0.0 -> 1.1.0 bloqué
  • 1.0.0 -> 2.0.0 bloqué

La comparaison de stratégie utilise la base native envoyée comme version_build, et non le bundle téléchargé actuel envoyé comme version_name.

Enfin, la stratégie la plus compliquée. metadata La stratégie.
Pour commencer, vous devez savoir que, initialement, après avoir activé la mise à jour, les mises à jour context: Page/area: Capgo Builder / native cloud build product page. Role: Short UI label or navigation item. Message key `native_build_builder_credit_first` (Native Build Builder Credit First). SE
échoueront car le canal manque de métadonnées requises.

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. misconfigured Premièrement, déterminez quel canal ne fonctionne pas. Vous pouvez le faire en regardant la

colonne

Table des erreurs de configuration (Misconfigured table) (Table des erreurs de configuration). Bundle number. Cela devrait vous emmener à la page du bundle.

Localisez le canal qui ne fonctionne pas.

Une fois là, remplissez le Minimal update version champ. Cela devrait ê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.

Maintenant, vous n'avez probablement pas envie de définir ces données manuellement chaque fois que vous mettez à jour. Heureusement, le __CAPGO_KEEP_0__ empêchera de vous envoyer une mise à jour sans ce métadonnée.

CLI fail sans métadonnée.

CLI fail no metadata

Vous devez passer le metadata avec le --min-update-version option version semantique valideQuelque chose comme ceci :

CLI télécharger avec des métadonnées

Le --min-update-version n'est pas la VOIE UNIQUE pour faire la compatibilité. Il existe également la --auto-min-update-version . Voici comment cela fonctionne.

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

Vous obtiendrez toujours une information sur le min_update_version lorsque vous utilisez cette option. Elle ressemblera à ceci :

Min version d'update

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

Min version d'update non 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 une 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 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 commit la clé privée dans votre fichier de configuration, et de ne pas la partager avec personne.

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

Enregistrer la clé dans la configuration de votre application

Sous-titre : Enregistrer la clé dans la configuration de votre application

npx @capgo/cli key save

Optionnellement, 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 l'utiliser inline. Cette commande est utile si vous avez suivi la recommandation et n'avez pas commit la clé dans votre configuration d'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 API clé

Si vous utilisez les Commandes pour planifier le tableau de bord et les opérations API, connectez-l’avec API Vue d'ensemble pour les détails d'implémentation dans API Vue d'ensemble Introduction pour les détails d'implémentation dans Introduction API Clés pour les détails d'implémentation dans API Clés Appareils pour les détails d'implémentation dans Appareils, et Paquets pour les détails d'implémentation dans Paquets.