Commandes
Copiez une commande de configuration avec les étapes d'installation et la guide markdown complet pour ce plugin.
Utilisation
Section intitulée « Utilisation »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 ici pour vous aider é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.
Connexion
Section intitulée “Connexion”npx @capgo/cli login [apikey]
Cette méthode est ici pour vous rappeler le apikey pour vous.
Vous pouvez optionnellement donner :
--local Cela stockera votre apikey dans le dépôt local et l'ignorez avec 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] insérez l'ID de votre application au format com.test.app qui 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]pour avoir un icône personnalisé affiché dans l'application web de Capgo.--name [test]pour avoir un nom personnalisé dans la liste.--apikey [key]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 de 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 un icône personnalisé affiché 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.--apikey [key]API clé pour se connecter à votre compte.
npx @capgo/cli app list [appId]
[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.
Supprimer
Section intitulée « Supprimer »npx @capgo/cli app delete [appId]
[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.--bundleavec le numéro de version, seul cette version sera supprimée.
npx @capgo/cli app debug [appId]
[appId] votre ID d'application au format com.test.app est expliqué ici.
Vous pouvez optionnellement fournir :
--apikey [key]API clé pour se connecter à votre compte.--deviceavec le dispositif spécifique que vous souhaitez déboguer
Paramètres
Section intitulée “Paramètres”npx @capgo/cli app setting [path]
Modifier la configuration Capacitor.
[path] - chemin de la configuration 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
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
Téléchargement
Section intitulée « Charger »npx @capgo/cli bundle upload [appId]
[appId] c'est votre ID d'application, la forme est expliquée ici.
Optionnellement, vous pouvez donner :
--apikey <apikey>API clé pour se connecter à votre compte.--path <path>Chemin du dossier à charger.--channel <channel>Canal à lier.--external <url>Lier à une URL externe au lieu de 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 point de terminaison S3.--s3-bucket-name <bucketName>Nom de votre bacquet S3 AWS.--s3-port <port>Port pour votre point de terminaison S3.--no-s3-sslDésactiver SSL pour l'upload 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-urlAffiche l'URL du bundle dans la sortie standard.--no-keyIgnorer la clé de signature et envoyer l'update clair.--no-code-checkIgnorer la vérification si notifyAppReady() est appelé dans le source code et l'index présent dans le dossier root.--display-iv-sessionAfficher dans la console la IV et la clé de session utilisés pour chiffrer l'update.--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 mise à jour automatique est désactivée dans le canal.--auto-min-update-versionDéfinir la version minimale de mise à jour en fonction des packages natifs.--ignore-metadata-checkIgore la vérification des métadonnées (node_modules) lors du téléchargement.--ignore-checksum-checkIgore la vérification du checksum lors du téléchargement.--timeout <timeout>Temps d'attente pour le processus de téléchargement en secondes.--deltaTélécharge les fichiers Delta (manifest) en même temps que le bundle complet.--delta-onlyTélécharge uniquement les mises à jour Delta (manifest), en ignorant le bundle complet.--no-deltaDésactive les téléchargements Delta (manifest) (utile si est activé mais que vous voulez un bundle complet).directUpdateTélécharge le bundle en utilisant le protocole TUS.--tusUtilise le protocole multipart pour télécharger les données vers S3, obsolète, utilisez TUS à la place.--multipartUploads Delta (manifest) files alongside the full bundle. (Useful if you want to upload a full bundle and also keep track of the changes made to the project.)--encrypted-checksum <encryptedChecksum>Un hachage chiffré (signature). Utilisé uniquement lors de l'envoi d'un bundle externe.--package-json <packageJson>Un chemin vers package.json. Utile pour les monorepos.--auto-set-bundleDéfinir le bundle dans capacitor.config.json.--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)
⭐️ L'option externe permet de déverrouiller 2 cas : les entreprises avec des préoccupations de confidentialité, ne pas envoyer 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.
👀 Le cloud de Capgo 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 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é, ni 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.
Vous pouvez optionnellement fournir :
--apikey [key]API clé pour se connecter à votre compte.
Supprimer
Section intitulée « Supprimer »npx @capgo/cli bundle delete [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.--bundleavec le numéro de version, cela supprimera uniquement cette version.
Nettoyage
Section intitulée « Nettoyage »dans une plage 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.
Vous pouvez également fournir :
--apikey [key]API clé pour se connecter à votre compte.--bundle [majorVersion]une version que vous souhaitez supprimer les packages précédents, il gardera le dernier +numberToKeep.--keep [numberToKeep]__CAPGO_KEEP_0__ (par défaut 4).
Par exemple : Si vous avez 10 versions de 10.0.1 à 10.0.11, et que vous utilisez npx @capgo/cli cleanup [appId] --bundle=10.0.0 Il supprimera 10.0.1 à 10.0.6. 10.0.7 jusqu'à 10.0.11 seront conservés.
Si vous avez 20 versions au total, et que vous n'avez pas fourni un numéro de bundle comme ceci : npx @capgo/cli cleanup [appId] --keep=2 Il supprimera 18 versions, et conservera les 2 dernières.
Cette commande demandera confirmation, elle affichera une table de ce qui sera conservé et supprimé.
Chiffrer
Section intitulée “Chiffrer”Avertissement: Cette commande est obsolète et sera supprimée dans la prochaine version majeure. Veuillez utiliser le nouveau système d'encryption.
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 l'utiliser inline.
La commande imprimer votre ivSessionKeyy et générer un zip chiffré, pour l'utiliser avec la commande de téléchargement ou la commande de décryptage.
Chiffrer V2
Section intitulée “Chiffrer V2”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.
Le 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.
--key [/path/to/my/private_key] Il sera chiffré avec la clé privée et envoyé avec le bundle.
--key-data [privateKey] Dans l'encryption v2, le checksum est mis à jour pour devenir une « signature » du bundle.
--json afficher les informations sous forme de JSON. ivSessionKeyLa commande affichera votre clé de session et générera un zip chiffré, que vous pouvez utiliser avec la commande d'upload ou la commande de déchiffrement.
Déchiffrer
Section intitulée “Déchiffrer”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 inline. 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.
Déchiffrer V2
Section intitulée “Déchiffrer V2”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 inline. 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] la somme de contrôle du fichier, il vérifiera la somme de contrôle après 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 la version du bundle du nom du fichier.--name [myapp]pour remplacer le nom du fichier.--jsonpour afficher les informations sous forme de JSON.--no-code-checkpour ignorer la vérification code et envoyer le bundle quand même.--key-v2pour utiliser le nouveau système de cryptage. Cela est requis car le nouveau système de cryptage utilise des sommets de contrôle meilleurs pour vérifier l'intégrité du fichier.
Compatibilité
La section intitulée « Compatibilité »npx @capgo/cli bundle compatibility [appId] -c [channelId]
[appId] est votre ID d'application, la forme est expliquée ici.
[channelId] le nom de votre nouveau canal.
Optionnellement, vous pouvez donner :
--apikey [key]API clé pour se connecter à votre compte.--textutiliser 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] Nommez votre nouveau canal. [appId] La forme de votre ID d'application est expliquée com.test.app ici Supprimer.
Section intitulée « Supprimer »
Nommez le canal que vous souhaitez supprimer.npx @capgo/cli channel delete [channelId] [appId]
[channelId] La forme de votre ID d'application est expliquée [appId] ici com.test.app __CAPGO_KEEP_0__ ici.
npx @capgo/cli channel list [appId]
[appId] votre ID d'application au format com.test.app est expliqué ici.
Vous pouvez optionnellement fournir :
--apikey [key]API clé pour se connecter à votre compte.
Configurer
Section intitulée « Configurer »npx @capgo/cli channel set [channelId] [appId]
[appId] est votre ID d'application, la forme est expliquée ici.
Vous pouvez également fournir :
--bundle [1.2.3]votre application bundle déjà envoyé dans le cloud, pour le lier à un canal.--latestobtenir la version du bundle à partir depackage.json:version, qui ne peut pas être utilisé avec--bundle.--state [ normal | default ]mettre à jour l'état du canal, qui peut êtrenormaloudefault. Un seul canal doit êtredefault.--downgradepermet au canal d'envoyer une version de dégradation aux appareils.--no-downgradeinterdit au canal d'envoyer une version de dégradation aux appareils.--upgradepermet au canal d'envoyer une version d'amélioration (majeure) aux appareils.--no-upgradeinterdit au canal d'envoyer une version d'amélioration (majeure) aux appareils.--iospermet au canal d'envoyer une version aux appareils iOS.--no-iosinterdit la chaîne d'envoyer la version aux appareils iOS.--androidpermet à la chaîne d'envoyer la version aux appareils Android.--no-androidinterdit la chaîne d'envoyer la version aux appareils Android.--self-assignpermet aux appareils de s'attribuer automatiquement à cette chaîne.--no-self-assigninterdit aux appareils de s'attribuer automatiquement à cette chaîne.--disable-auto-update STRATEGYDésactiver la stratégie d'actualisation automatique pour cette chaîne. Les options possibles sont : majeur, mineur, métadonnées, aucun.--apikey [key]API clé pour se connecter à votre compte.
Désactiver la stratégie d'actualisation
Section intitulée “Désactiver la stratégie d'actualisation”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 le code natif, il faut donc empêcher une mise à jour d'une version avec le code natif ancien vers une version avec le code natif mis à jour.
Il existe plusieurs façons d'y parvenir. major stratégie. Elle empêche une mise à jour de 0.0.0 -> 1.0.0. Le numéro majeur est le numéro mis en surbrillance (1.0.0 et 0.0.0).
Deuxième est le minor stratégie. Elle empêche une mise à jour de 0.0.0 -> 1.1.0 ou une mise à jour de 1.1.0 À L'ATTENTION 1.2.0.
Cette stratégie n'empêche pas une mise à jour de Troisième, la 0.1.0 -> 1.1.0
stratégie. Elle a été ajoutée dans __CAPGO_KEEP_0__ comme un mode très strict. Il ne faut pas l'utiliser à moins d'en comprendre parfaitement le fonctionnement.
Pour qu'elle accepte une mise à jour, les conditions suivantes doivent être remplies : patch strategy. It was added into capgo as a very strict mode. It’s not recommended to be used unless you fully understand how it works.
In order for it to accept a update the following conditions must be meet:
- Le numéro mineur est le même entre la nouvelle et la version ancienne
- Le numéro de version est identique entre la nouvelle et l'ancienne version
- Si le numéro de patch de la nouvelle version est supérieur au numéro de patch de l'ancienne version
Voici un exemple de scénarios dans lesquels l'update est autorisé ou refusé
- 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 initialement après avoir activé cela, les mises à jour S'ÉCHOUERONT car le canal manque les métadonnées requises.
Si le canal manque des métadonnées, vous verrez un message comme celui-ci :
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 à l'__CAPGO_KEEP_0__ misconfigured colonnes
Alors, allez dans le canal qui ne fonctionne pas et cliquez sur Bundle numberCela devrait vous emmener sur la page du bundle.
Une fois là, renseignez 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
CLI fail sans métadonnée
Pour uploader correctement un bundle en utilisant l'option, vous devez passer le metadata __CAPGO_KEEP_0__ avec les métadonnées --min-update-version Le
Il existe également le --min-update-version Voici comment cela fonctionne. --auto-min-update-versionTout d'abord, il regarde la version actuellement uploadée sur le canal. Il vérifie la compatibilité de la même manière que le
commande le ferait. bundle compatibility Ensuite, si la nouvelle version est 100% compatible, il réutilise le min_update_version de la dernière version du canal. min_update_version Si ce n'est pas le cas, alors il définit le
au numéro de bundle de la nouvelle version uploadée. min_update_version When vous utilisez cette option. Il ressemblera à ceci:
Si la nouvelle version n'est pas compatible, elle devrait ressembler à ceci:
Chiffrement de bout en bout (sans confiance)
Section intitulée “Chiffrement de bout en bout (sans confiance)”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.
Schéma de chiffrement
Créer une clé pour votre application
Section intitulée « Créer une clé pour votre application »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 commiter la clé privée dans le fichier 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
Enregistrer la clé dans la configuration de l'application
Section intitulée « Enregistrer la clé dans la configuration de l'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 l'application.
Intégration CI
Section intitulée « Intégration CI »Pour automatiser votre travail, je vous recommande de faire que l'action GitHub s'occupe de la tâche de pousser vers notre serveur
Notre application de démo
Section intitulée « Notre application de démo »N'oubliez pas de configurer la variable d'environnement CI avec votre clé API