Saltar al contenido

Commands

Todos los comandos deben ejecutarse en la carpeta de su aplicación con el proyecto del condensador encendido correctamente.

npx @capgo/cli@latest init [apikey]

Este método está aquí para incorporarlo paso a paso.

Agregará su aplicación a Capgo. Agregará el código a su aplicación para validar la actualización. Asimismo, construirá su aplicación. Además, cargará su aplicación en Capgo. Y te ayudará a comprobar si la actualización funciona.

npx @capgo/cli login [apikey]

Este método está aquí para recordar el apikey por usted.

Opcionalmente puedes regalar:

--local Esto almacenará su apikey en el repositorio local y la ignorará.

npx @capgo/cli doctor

Comando para verificar si está actualizado con los paquetes Capgo.

Este comando también será útil para informar errores.

npx @capgo/cli app add [appId]

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

💡 Todas las opciones se adivinarán en su configuración si no se proporcionan.

Opcionalmente puedes dar:

  • --icon [/path/to/my/icon] para mostrar un ícono personalizado en la aplicación web Capgo.
  • --name [test] para tener un nombre personalizado en la lista.
  • --apikey [key] API clave para vincular a su cuenta.
  • --retention [retention] período de retención del paquete de aplicaciones en días, 0 de forma predeterminada = infinito.

Ejemplo de capacitor.config.json para appId y AppName, el ícono se adivina en la carpeta de recursos

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

npx @capgo/cli app set [appId]

[appId] es el ID de su aplicación, el formato se explica aquí.

Opcionalmente puedes dar:

  • --icon [/path/to/my/icon] para mostrar un ícono personalizado en la aplicación web Capgo.
  • --name [test] para tener un nombre personalizado en la lista.
  • --retention [retention] período de retención del paquete de aplicaciones en días, 0 de forma predeterminada = infinito.
  • --apikey [key] API clave para vincular a su cuenta.

npx @capgo/cli app list [appId]

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.

npx @capgo/cli app delete [appId]

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.
  • --bundle con el número de versión solo eliminará esta versión.

npx @capgo/cli app debug [appId]

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.
  • --device con el dispositivo específico que desea depurar

npx @capgo/cli app setting [path]

Edite la configuración Capacitor.

[path]: ruta de la configuración que desea cambiar. Por ejemplo, para cambiar appId, proporcione appId. Si desea deshabilitar la actualización automática en capacitor-updater, proporcione plugins.CapacitorUpdater.autoUpdate

¡DEBE proporcionar --string o --bool!

Opciones:

  • --string <string> - establece la configuración en una cadena
  • --bool <true | false> - establece la configuración en booleano

npx @capgo/cli bundle upload [appId]

[appId] es el ID de su aplicación, el formato se explica aquí.

Opcionalmente puedes dar:

  • --apikey <apikey> API clave para vincular a su cuenta.
  • --path <path> Ruta de la carpeta a cargar.
  • --channel <channel> Canal al que vincular.
  • --external <url> Enlace a una URL externa en lugar de cargarlo en la nube Capgo.
  • --iv-session-key <key> Establezca el IV y la clave de sesión para la URL del paquete externo.
  • --s3-endpoint <s3Endpoint> URL del punto final de S3. No funciona con cargas delta ni con la opción externa.
  • --s3-region <region> Región para su depósito S3.
  • --s3-apikey <apikey> API clave para su punto final S3.
  • --s3-apisecret <apisecret> API secreto para su punto final S3.
  • --s3-bucket-name <bucketName> Nombre de su depósito de AWS S3.
  • --s3-port <port> Puerto para su punto final S3.
  • --no-s3-ssl Deshabilitar SSL para carga S3.
  • --key <key> Ruta personalizada para la clave de firma pública (sistema v1).
  • --key-data <keyData> Clave de firma pública (sistema v1).
  • --key-v2 <key> Ruta personalizada para la clave de firma privada (sistema v2).
  • --key-data-v2 <keyData> Clave de firma privada (sistema v2).
  • --bundle-url Imprime la URL del paquete en la salida estándar.
  • --no-key Ignorar la clave de firma y enviar una actualización clara.
  • --no-code-check Ignore la verificación si se llama a notifyAppReady() en el código fuente y el índice presente en la carpeta raíz.
  • --display-iv-session Muestra en la consola el IV y la clave de sesión utilizados para cifrar la actualización.
  • --bundle <bundle> Número de versión del paquete que se va a cargar.
  • --min-update-version <minUpdateVersion> Versión mínima requerida para actualizar a esta versión. Se usa solo si la desactivación de la actualización automática está configurada en metadatos en el canal.
  • --auto-min-update-version Establece la versión mínima de actualización según los paquetes nativos.
  • --ignore-metadata-check Ignora la verificación de metadatos (node_modules) al cargar.
  • --ignore-checksum-check Ignora la verificación de suma de verificación al cargar.
  • --timeout <timeout> Tiempo de espera para el proceso de carga en segundos.
  • --delta Carga archivos Delta (manifiesto) junto con el paquete completo.
  • --delta-only Carga solo actualizaciones Delta (manifiesto), omitiendo el paquete completo.
  • --no-delta Deshabilita las cargas Delta (manifiesto) (útil si directUpdate está habilitado pero desea un paquete completo).
  • --tus Sube el paquete usando el protocolo tus.
  • --multipart Utiliza un protocolo multiparte para cargar datos en S3. En desuso, utilice TUS en su lugar.
  • --encrypted-checksum <encryptedChecksum> Una suma de comprobación cifrada (firma). Se utiliza solo al cargar un paquete externo.
  • --package-json <packageJson> Una ruta al paquete.json. Útil para monorepos.
  • --auto-set-bundle Configure el paquete en capacitor.config.json.
  • --node-modules <nodeModules> Una lista de rutas a node_modules. Útil para monorepos (separados por comas, por ejemplo: ../../node_modules,./node_modules)

⭐️ 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. Con esta configuración, Capgo almacena solo el enlace al zip y envía el enlace a todas las aplicaciones.

👀 Capgo la nube nunca mira lo que hay en el enlace (para opción externa) o en el código cuando se almacena.

🔑 You can add a second layer of security by using encryption, then Capgo will not be able to look or modify anything, it becomes “trustless”.Ejemplo de package.json para la versión

{
"version": "1.0.2"
}

⛔ La versión debe ser mayor que “0.0.0”.

💡 Don’t forget to update the version number each time you send one, version number cannot be overridden, or reused after deletion for security reason.

npx @capgo/cli bundle list [appId]

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.

npx @capgo/cli bundle delete [appId]

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.
  • --bundle con el número de versión solo eliminará esta versión.

en un rango SemVer para una versión mayor a Cloud

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

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.
  • --bundle [majorVersion] una versión para la que desea eliminar paquetes anteriores, mantendrá el último + numberToKeep.
  • --keep [numberToKeep] la cantidad de paquetes que desea conservar (predeterminado 4).

Por ejemplo: si tiene 10 versiones de 10.0.1 a 10.0.11 y usa npx @capgo/cli cleanup [appId] --bundle=10.0.0, eliminará 10.0.1 a 10.0.6. Se mantendrán del 10.0.7 al 10.0.11.

If you have 20 versions in total, and you don’t provide a bundle number like this: npx @capgo/cli cleanup [appId] --keep=2 It will remove 18 versions, and keep the last 2.

Este comando pedirá confirmación, muestra una tabla de lo que se mantendrá y eliminará.

Advertencia: este comando está obsoleto y se eliminará en la próxima versión principal. Utilice el nuevo sistema de cifrado. npx @capgo/cli bundle encrypt [path/to/zip]

Este comando se utiliza cuando utiliza una fuente externa para almacenar su código o con fines de prueba.

Opcionalmente puedes dar:

--key [/path/to/my/private_key] la ruta de su clave privada. --key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea. El comando imprimirá su ivSessionKeyy y generará un zip cifrado, para usarlo con el comando de carga o el comando decrit.

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

Este comando se utiliza cuando utiliza una fuente externa para almacenar su código o con fines de prueba. La suma de comprobación es el sha256 del paquete (generado por —key-v2), se utiliza para verificar la integridad del archivo después del descifrado. Se cifrará con la clave privada y se enviará junto con el paquete. En el cifrado v2, la suma de comprobación se actualiza para convertirse en una “firma” del paquete.

Opcionalmente puedes dar:

--key [/path/to/my/private_key] la ruta de su clave privada. --key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea. --json para generar información como json. El comando imprimirá su ivSessionKeyy y generará un zip cifrado, para usarlo con el comando de carga o el comando decrit.

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

Opcionalmente puedes dar:

--key [/path/to/my/private_key] la ruta de su clave privada.--key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea. Este comando se utiliza principalmente con fines de prueba, descifrará el zip e imprimirá la clave de sesión descifrada en base64 en la consola.

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

Opcionalmente puedes dar:

--key [/path/to/my/private_key] la ruta de su clave privada. --key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea. Este comando se utiliza principalmente con fines de prueba, descifrará el zip e imprimirá la clave de sesión descifrada en base64 en la consola. --checksum [checksum] la suma de verificación del archivo, verificará la suma de verificación después del descifrado.

npx @capgo/cli bundle zip [appId]

[appId] es el ID de su aplicación, el formato se explica aquí.

Opcionalmente puedes dar:

  • --path [/path/to/my/bundle] para cargar una carpeta específica.
  • --bundle [1.0.0] para establecer el número de versión del paquete del nombre de archivo.
  • --name [myapp] para anular el nombre del archivo.
  • --json para generar información como json.
  • --no-code-check para ignorar la verificación del código y enviar el paquete de todos modos.
  • --key-v2 para utilizar el nuevo sistema de cifrado. Esto es necesario ya que el nuevo sistema de cifrado utiliza mejores sumas de verificación para verificar la integridad del archivo.

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

[appId] es el ID de su aplicación, el formato se explica aquí. [channelId] el nombre de tu nuevo canal.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.
  • --text usa texto en lugar de emojis en la tabla
  • --channel [channel] el canal para verificar la compatibilidad.
  • --package-json <packageJson> Una ruta al paquete.json. Útil para monorepos
  • --node-modules <nodeModules> Una lista de rutas a node_modules. Útil para monorepos (separados por comas, por ejemplo: ../../node_modules,./node_modules)

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

[channelId] el nombre de tu nuevo canal. [appId] el ID de su aplicación, el formato com.test.app se explica aquí.

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

[channelId] el nombre de tu canal que deseas eliminar. [appId] el ID de su aplicación, el formato com.test.app se explica aquí.

npx @capgo/cli channel list [appId]

[appId] el ID de su aplicación, el formato com.test.app se explica aquí.

Opcionalmente puedes dar:

  • --apikey [key] API clave para vincular a su cuenta.

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

[appId] es el ID de su aplicación, el formato se explica aquí.

Opcionalmente puedes dar:* --bundle [1.2.3] tu paquete de aplicaciones ya enviado a la nube, para vincularlo a un canal.

  • --latest obtiene la versión del paquete de package.json:version, no se puede usar con --bundle.
  • --state [ normal | default ] establece el estado del canal, puede ser normal o default. Un canal debe ser default.
  • --downgrade permite que el canal envíe una versión anterior a los dispositivos.
  • --no-downgrade no permite que el canal envíe una versión degradada a los dispositivos.
  • --upgrade permite que el canal envíe una versión de actualización (principal) a los dispositivos.
  • --no-upgrade no permite que el canal envíe una versión de actualización (principal) a los dispositivos.
  • --ios permite que el canal envíe la versión a los dispositivos iOS.
  • --no-ios no permite que el canal envíe la versión a los dispositivos iOS.
  • --android permite que el canal envíe la versión a dispositivos Android.
  • --no-android no permite que el canal envíe la versión a dispositivos Android.
  • --self-assign permite que los dispositivos se autoasignen a este canal.
  • --no-self-assign no permite que los dispositivos se autoasignen a este canal.
  • --disable-auto-update STRATEGY Deshabilita la estrategia de actualización automática para este canal. Las opciones posibles son: mayor, menor, metadatos, ninguno.
  • --apikey [key] API clave para vincular a su cuenta.

Deshabilitar la estrategia de actualizaciones

Section titled “Deshabilitar la estrategia de actualizaciones”

Hay algunas formas de gestionar la desactivación de actualizaciones para versiones demasiado antiguas.
Capgo no puede actualizar el código nativo, por lo que no debería ser posible actualizar desde una versión con el código nativo antiguo a una versión con el código nativo actualizado. Hay un par de formas de lograrlo.

Primero, la estrategia major. Impide una actualización de 0.0.0 -> 1.0.0. El mayor es el número resaltado (1.0.0 y 0.0.0).
En segundo lugar está la estrategia minor. Impide una actualización de 0.0.0 -> 1.1.0 o una actualización de 1.1.0 a 1.2.0. TENGA EN CUENTA esta estrategia no impide una actualización de 0.1.0 -> 1.1.0

En tercer lugar, la estrategia patch. Se agregó a capgo como un modo muy estricto. No se recomienda su uso a menos que comprenda completamente cómo funciona. Para que acepte una actualización se deben cumplir las siguientes condiciones:

  • La versión principal es la misma entre la versión nueva y la antigua.
  • El menor es el mismo entre la versión nueva y la antigua.
  • El parche de la nueva versión es mayor que el parche de la versión anterior.

A continuación se muestra un ejemplo de en qué escenarios se permite o deniega la actualización.

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

Por último la estrategia más complicada. La estrategia metadata.
Primero debe saber que inicialmente, después de habilitarlo, las actualizaciones FALLARÁN ya que el canal carece de los metadatos necesarios.
Si al canal le faltan metadatos, verá un mensaje como este:

No puedo encontrar metadatos

Si ve algo como esto, sabrá que debe ir al paquete actual del canal que falla y configurar los metadatos.
Primero, averigüe qué canal está fallando. Puedes hacerlo mirando la columna misconfigured Tabla mal configuradaLuego vaya al canal que falla y haga clic en “Número de paquete”. Esto debería llevarlo a la página del paquete.

Localizar el canal defectuoso

Una vez allí, complete el campo “Versión de actualización mínima”. Esto debería ser un semver.
Si el valor que pasas no es un semver obtendrás un error, pero si todo va correctamente deberías ver algo como esto:

Establecer versión mínima

Ahora bien, probablemente no quieras configurar estos datos manualmente cada vez que actualices. Afortunadamente, CLI evitará que envíes una actualización sin estos metadatos.

CLI falla sin metadatos

Para cargar correctamente un paquete cuando se utiliza la opción metadata, debe pasar --min-update-version con el semver válido. Algo como esto:

CLI subir con metadatos

El --min-update-version no es la ÚNICA forma de lograr compatibilidad. También existe el --auto-min-update-version. Así es como funciona.

Primero, echa un vistazo a la versión subida actualmente al canal. Comprueba la compatibilidad de la misma manera que lo haría el comando “compatibilidad de paquete”. En segundo lugar, si la nueva versión es 100% compatible, reutiliza el min_update_version de la última versión del canal. De lo contrario, establece min_update_version en el número de paquete de la versión recién cargada.

Siempre obtendrá información sobre cuál es min_update_version al utilizar esta opción. Se verá así:

Versión mínima de actualización

Si la nueva versión no es compatible, debería verse así

Versión mínima de actualización no compatible

Cifrado de extremo a extremo (sin confianza)

Section titled “Cifrado de extremo a extremo (sin confianza)”

Capgo admite el cifrado de extremo a extremo, esto significa que su paquete (código) se cifra antes de enviarlo a la nube y descifrarlo en el dispositivo. Para eso, necesita generar un par de claves RSA; puede usar el siguiente comando para generarlo.

El sistema de cifrado es una combinación de RSA y AES, la clave RSA se utiliza para cifrar la clave AES y la clave AES se utiliza para cifrar el archivo.

Consulte a continuación para obtener más información sobre el sistema de cifrado.

Cómo funcionan las criptomonedas

Esquema de cifrado

npx @capgo/cli key create

Opcionalmente, puede proporcionar: --force para sobrescribir la clave existente. Este comando creará para usted un par de claves en su aplicación y le pedirá que guarde la clave privada en un lugar seguro. Se recomienda no confirmar la clave privada y no compartirla con nadie.

Después de su prueba local, elimine la clave del archivo de configuración y agréguela en el paso CI con “guardar clave”

Guardar clave en la configuración de tu aplicación

Section titled “Guardar clave en la configuración de tu aplicación”

npx @capgo/cli key save

Opcionalmente puedes dar:

--key [/path/to/my/public_key] la ruta de su archivo de clave pública.

--key-data [publicKey] los datos de clave pública, si desea utilizarlos en línea. Este comando es útil si siguió la recomendación y no confirmó la clave en la configuración de su aplicación.

Para automatizar su trabajo, le recomiendo que haga que la acción GitHub haga el trabajo de enviar a nuestro servidor.

GitHub tutorial de acción

GitHub - Cap-go/aplicación de demostración

No olvide configurar la variable de entorno CI con su clave API