Comandos
Copie una solicitud de configuración con los pasos de instalación y la guía de markdown completa para este complemento.
Todos los comandos deben ejecutarse en el directorio de tu aplicación con capacitor proyecto encendido correctamente.
Iniciar
Sección titulada “Iniciar”npx @capgo/cli@latest init [apikey]
Este método está aquí para llevar a cabo el proceso de inicio de manera paso a paso.
Agregará tu aplicación a Capgo. Agregará el code a tu aplicación para validar la actualización. De manera similar, construirá tu aplicación. Además, subirá tu aplicación a Capgo. Y te ayudará a verificar si la actualización funciona.
Iniciar sesión
Sección titulada “Iniciar sesión”npx @capgo/cli login [apikey]
Este método está aquí para recordar los apikey para ti.
Opcionalmente puede dar:
--local Esto almacenará su apikey en el repositorio local y lo ignorará en Git.
npx @capgo/cli doctor
Comando para verificar si está actualizado con Capgo paquetes.
Este comando también será útil para informar errores.
npx @capgo/cli app add [appId]
[appId] su ID de aplicación en el formato com.test.app se explica aquí ¡Todos los opciones serán adivinados en tu configuración si no se proporciona..
Opcionalmente, puedes proporcionar:
para tener un icono personalizado que se muestre en la aplicación web de __CAPGO_KEEP_0__.
--icon [/path/to/my/icon]to have a custom icon display in Capgo web app.--name [test]__CAPGO_KEEP_0__ clave para vincular a tu cuenta.--apikey [key]API--retention [retention]período de retención del paquete de la aplicación en días, 0 por defecto = infinito.
Ejemplo de capacitor.config.json para appId y AppName, el icono se adivina en el carpeta de recursos
{ "appId": "ee.forgr.capacitor_go", "appName": "Capgo", "webDir": "dist"}npx @capgo/cli app set [appId]
[appId] aquí Opcionalmente, puede dar:.
para tener un icono personalizado en la aplicación web de __CAPGO_KEEP_0__.
--icon [/path/to/my/icon]to have a custom icon display in Capgo web app.--name [test]período de retención del paquete de la aplicación en días, 0 por defecto = infinito.--retention [retention]Configuración--apikey [key]llave API para vincular a su cuenta.
npx @capgo/cli app list [appId]
[appId] su ID de aplicación en el formato com.test.app se explica aquí.
Opcionalmente, puede proporcionar:
--apikey [key]llave API para vincular a su cuenta.
Eliminar
Sección titulada “Eliminar”npx @capgo/cli app delete [appId]
[appId] su ID de aplicación en el formato com.test.app se explica here.
Opcionalmente, puedes proporcionar:
--apikey [key]API clave para vincular a tu cuenta.--bundlecon el número de versión solo eliminará esta versión.
Depuración
Sección titulada “Depuración”npx @capgo/cli app debug [appId]
[appId] tu ID de aplicación en el formato com.test.app se explica aquí.
Opcionalmente, puedes proporcionar:
--apikey [key]API clave para vincular a tu cuenta.--devicecon el dispositivo específico que deseas depurar
Configuración
Sección titulada “Configuración”npx @capgo/cli app setting [path]
Edita la configuración Capacitor.
[path] - ruta de la configuración que deseas cambiar. Por ejemplo, para cambiar el appId, proporciona appId.
Si deseas deshabilitar la actualización automática en el capacitor-updater, proporciona plugins.CapacitorUpdater.autoUpdate con --string off.
DEBES proporcionar uno de --string o --bool!
Opciones:
--string <string>- establece la configuración en una cadena--bool <true | false>- establece la configuración a un booleano
Paquete
Sección titulada “Paquete”npx @capgo/cli bundle upload [appId]
[appId] es tu ID de aplicación, se explica el formato aquí.
Opcionalmente, puedes proporcionar:
--apikey <apikey>API clave para vincular a tu cuenta.--path <path>Ruta del carpeta para subir.--channel <channel>Canales para vincular.--external <url>Vincular a una URL externa en lugar de subir a Capgo Cloud.--iv-session-key <key>Establecer la IV y la clave de sesión para la URL de paquete externo.--s3-endpoint <s3Endpoint>URL del punto final de S3. No funciona con subidas delta o la opción externa.--s3-region <region>Región para su contenedor de S3.--s3-apikey <apikey>API clave para su punto final de S3.--s3-apisecret <apisecret>API secreto para su punto final de S3.--s3-bucket-name <bucketName>Nombre para su contenedor de S3 de AWS.--s3-port <port>Puerto para su punto final de S3.--no-s3-sslDeshabilitar SSL para la subida de 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-urlImprime la URL del paquete en la salida estándar.--no-keyIgnora la clave de firma y envía la actualización en claro.--no-code-checkIgnora la comprobación de si se llama a notifyAppReady() en el origen code y el índice presente en la carpeta raíz.--display-iv-sessionMuestra en la consola la clave de IV y la sesión utilizadas para cifrar la actualización.--bundle <bundle>Número de versión del paquete a subir.--min-update-version <minUpdateVersion>Versión mínima requerida para actualizar a esta versión. Se utiliza solo si se establece la actualización automática en la metadata del canal.--auto-min-update-versionEstablece la versión mínima de actualización basada en paquetes nativos.--ignore-metadata-checkIgnora la comprobación de metadata (node_modules) al subir.--ignore-checksum-checkIgnora la comprobación de checksum al subir.--timeout <timeout>Tiempo de espera para el proceso de subida en segundos.--deltaSube los archivos Delta (manifest) junto con el paquete completo.--delta-onlySube solo actualizaciones Delta (manifest), saltándose el paquete completo.--no-deltaDesactiva las subidas de Delta (manifest) (útil si se habilita un modo de aplicación instantánea pero se quiere un paquete completo).autoUpdateSube el paquete utilizando el protocolo tus.--tusUtiliza el protocolo multipart para subir datos a S3, Obsoleto, utilice TUS en su lugar.--multipartUn checksum cifrado (firma). Se utiliza solo cuando se sube un paquete externo.--encrypted-checksum <encryptedChecksum>Un camino a package.json. Útil para monorepos.--package-json <packageJson>Establece el paquete en __CAPGO_KEEP_0__.config.json.--auto-set-bundleSet the bundle in capacitor.config.json.--node-modules <nodeModules>⭐️ La opción externa ayuda a desbloquear 2 casos: corporativos con preocupaciones de privacidad, no envían el __CAPGO_KEEP_0__ a una tercera parte y aplicaciones más grandes de 200 MB. Con esta configuración, __CAPGO_KEEP_1__ almacena solo el enlace al archivo zip y envía el enlace a todas las aplicaciones.
👀 El almacenamiento en la nube de code nunca mira qué hay en el enlace (para la opción externa), o en el Capgo cuando se almacena.
👀 Capgo cloud never looks at what is in the link (for external option), or in the code when stored.
🔑 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”.
__CAPGO_KEEP_0__ package.json para versión
{ "version": "1.0.2"}⛔ La versión debe ser mayor que “0.0.0”.
💡 No olvides actualizar el número de versión cada vez que lo envíes, el número de versión no puede ser sobrescrito ni reutilizado después de la eliminación por razones de seguridad.
npx @capgo/cli bundle list [appId]
[appId] su ID de aplicación en el formato com.test.app se explica aquí.
Opcionalmente, puedes proporcionar:
--apikey [key]API clave para vincular a tu cuenta.
Eliminar
Sección titulada “Eliminar”npx @capgo/cli bundle delete [appId]
[appId] su ID de aplicación en el formato com.test.app se explica aquí Aquí.
Opcionalmente, puede proporcionar:
--apikey [key]API clave para vincular a su cuenta.--bundlecon el número de versión solo eliminará esta versión.
Limpieza
Sección titulada “Limpieza”en un rango SemVer para una versión mayor a Cloud
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId] su ID de aplicación en el formato com.test.app se explica aquí here.
Opcionalmente, puedes proporcionar:
--apikey [key]La clave API para vincular a tu cuenta.--bundle [majorVersion]una versión que desees eliminar paquetes anteriores para, mantendrá la última +numberToKeep.--keep [numberToKeep]el número de paquetes que deseas mantener (por defecto 4).
Por ejemplo: Si tienes 10 versiones desde 10.0.1 a 10.0.11, y lo usas npx @capgo/cli cleanup [appId] --bundle=10.0.0 eliminará 10.0.1 a 10.0.6. 10.0.7 hasta 10.0.11 se mantendrán.
Si tienes 20 versiones en total, y no proporcionas un número de paquete como este: npx @capgo/cli cleanup [appId] --keep=2 eliminará 18 versiones, y mantendrá las últimas 2.
Esta orden solicitará confirmación, muestra una tabla de qué se mantendrá y qué se eliminará.
Encriptar
Sección titulada “Encriptar”Advertencia: Este comando está descontinuado y se eliminará en la próxima versión mayor. Por favor, utilice el nuevo sistema de encriptación.
npx @capgo/cli bundle encrypt [path/to/zip]
Este comando se utiliza cuando utilizas una fuente externa para almacenar tu code o para fines de prueba.
Opcionalmente, puedes proporcionar:
--key [/path/to/my/private_key] el camino de tu clave privada.
--key-data [privateKey] los datos de la clave privada, si deseas utilizar inline.
El comando imprimirá tu ivSessionKeyy generará un archivo zip encriptado, para utilizarlo con el comando de subida o el comando de descifrado.
Encriptar V2
Sección titulada “Encriptar V2”npx @capgo/cli bundle encrypt [path/to/zip] [checksum]
This command is used when you use an external source to store your code or for testing purposes.
La suma de comprobación es la sha256 del paquete (generada por —key-v2), se utiliza para verificar la integridad del archivo después de la desifrado.
--key [/path/to/my/private_key] Se cifrará con la clave privada y se enviará junto con el paquete.
--key-data [privateKey] En la cifrado v2 la suma de comprobación se actualiza para convertirse en una “firma” del paquete.
--json Opcionalmente, puedes proporcionar: ivSessionKeyla ruta de tu clave privada.
los datos de la clave privada, si deseas utilizarla en línea.
para que se imprima la información en formato JSON.npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
El comando imprimirá tu
--key [/path/to/my/private_key] y generará un archivo zip cifrado, para utilizarlo con el comando de carga o el comando de desifrado.
--key-data [privateKey] Desifrar
Sección titulada “Desifrar”
Sección titulada “Descifrar V2”npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
Opcionalmente, puedes proporcionar:
--key [/path/to/my/private_key] la ruta de tu clave privada.
--key-data [privateKey] los datos de la clave privada, si deseas utilizarla de forma inline. Este comando se utiliza principalmente con fines de prueba, descifra el zip y imprime la clave de sesión base64 descifrada en la consola.
--checksum [checksum] el checksum del archivo, se verificará el checksum después de la descifra.
npx @capgo/cli bundle zip [appId]
[appId] es tu ID de aplicación, el formato se explica aquí.
Opcionalmente, puedes proporcionar:
--path [/path/to/my/bundle]para subir un carpeta específica.--bundle [1.0.0]para establecer el número de versión del paquete del nombre del archivo.--name [myapp]para sobreescribir el nombre del archivo.--jsonpara enviar información como JSON.--no-code-checkpara ignorar la comprobación de code y enviar el paquete de todos modos.--key-v2para utilizar el nuevo sistema de cifrado. Esto es necesario ya que el nuevo sistema de cifrado utiliza mejores sumas de comprobación para verificar la integridad del archivo.
Compatibilidad
Sección titulada “Compatibilidad”npx @capgo/cli bundle compatibility [appId] -c [channelName]
[appId] es su ID de aplicación, el formato se explica aquí.
[channelName] el nombre del canal para verificar.
Opcionalmente, puedes proporcionar:
--apikey [key]la clave API para vincular a tu cuenta.--textutilizar texto en lugar de emojis en la tabla--channel [channel]el canal para verificar la compatibilidad con.--package-json <packageJson>Un camino a package.json. Útil para monorepos--node-modules <nodeModules>Una lista de rutas a node_modules. Útil para monorepos (separadas por comas, por ejemplo: ../../node_modules,./node_modules)
Agregar
Sección titulada “Agregar”npx @capgo/cli channel add [channelName] [appId]
[channelName] el nombre de su nuevo canal, como production o beta. [appId] su ID de aplicación en el formato com.test.app se explica aquí.
Eliminar
Sección titulada “Eliminar”npx @capgo/cli channel delete [channelName] [appId]
[channelName] escribe el nombre del canal que deseas eliminar. [appId] la ID de tu aplicación en el formato com.test.app se explica aquí.
npx @capgo/cli channel list [appId]
[appId] la ID de tu aplicación en el formato com.test.app se explica aquí.
Opcionalmente, puedes proporcionar:
--apikey [key]API clave para vincular tu cuenta.
Establecer
Sección titulada “Establecer”npx @capgo/cli channel set [channelName] [appId]
[appId] es tu ID de aplicación, se explica el formato aquí.
[channelName] el nombre del canal que deseas configurar, como production o beta.
Opcionalmente, puedes proporcionar:
--bundle [1.2.3]tu aplicación bundle ya enviado a la nube, para vincularlo a un canal.--latestobtener la versión del bundle desdepackage.json:version, no se puede utilizar con--bundle.--state [ normal | default ]establecer el estado del canal, se puedenormalodefaultDebes seleccionar un canal.default.--downgradePermite enviar una versión inferior a los dispositivos.--no-downgradeNo permite enviar una versión inferior a los dispositivos.--upgradePermite enviar una versión de actualización (mayor) a los dispositivos.--no-upgradeNo permite enviar una versión de actualización (mayor) a los dispositivos.--iosPermite enviar una versión a dispositivos iOS.--no-iosNo permite enviar una versión a dispositivos iOS.--androidPermite enviar una versión a dispositivos Android.--no-androidNo permite enviar una versión a dispositivos Android.--self-assignPermite que los dispositivos se asignen automáticamente a este canal.--no-self-assignNo permite que los dispositivos se asignen automáticamente a este canal.--disable-auto-update STRATEGYDeshabilitar la estrategia de actualización automática para este canal. Las opciones posibles son: mayor, menor, parche, metadatos, ninguno.--apikey [key]La clave API para vincular a su cuenta.
Deshabilitar la estrategia de actualizaciones
Sección titulada “Deshabilitar la estrategia de actualizaciones”Hay varias formas de manejar la deshabilitación de actualizaciones para versiones demasiado antiguas.
La clave Capgo no puede actualizar nativa code por lo que una actualización desde una versión con la nativa code antigua a una versión con la nativa code actualizada no debería ser posible.
Hay un par de formas de lograr eso.
Primero, la major estrategia. Evita que se realice una actualización desde la base nativa 0.0.0 -> paquete objetivo 1.0.0. El mayor es el número destacado (1.0.0 y 0.0.0).
Segundo es el minor estrategia. Evita una actualización cuando el paquete objetivo tiene un número mayor o menor que la versión nativa de la base del dispositivo, como 0.0.0 -> 1.1.0 o 1.1.0 -> 1.2.0.
tercero, la patch estrategia. Fue agregada en capgo como un modo muy estricto. No se recomienda utilizarlo a menos que esté completamente familiarizado con cómo funciona.
Para que acepte una actualización, deben cumplirse las siguientes condiciones:
- El número mayor es el mismo entre el paquete objetivo y
version_build - El número menor es el mismo entre el paquete objetivo y
version_build - El parche es el mismo entre el paquete objetivo y
version_build - Sólo la versión de sufijo puede diferir, como prerelease (
-beta.2) o metadatos de compilación (+build.2)
Here is an example of which scenarios the update is allowed or denied
- Aquí hay un ejemplo de escenarios en los que la actualización está permitida o denegada
- 1.0.0-beta.1 -> 1.0.0-beta.2 permitido
- 1.0.0 -> 1.0.1 bloqueado
- 1.0.0 -> 1.1.0 bloqueado
- 1.0.0 -> 2.0.0 bloqueado
La comparación de estrategias utiliza la base nativa enviada como version_build, no la paquetería descargada actualmente enviada como version_name.
Por último, la estrategia más complicada. La metadata estrategia.
Primero debes saber que inicialmente después de habilitarlo las actualizaciones NO funcionarán ya que el canal carece de los metadatos requeridos.
Si el canal carece de metadatos verás un mensaje como este:
If ves algo como esto sabes que debes ir a la carpeta actual del canal fallido y configurar los metadatos.
Primero, averigua qué canal está fallando. Puedes hacerlo mirando la misconfigured columna
Luego ve al canal fallido y haz clic en Bundle number. Esto debería llevarte a la página de la carpeta.
Una vez allí, rellena el Minimal update version campo. Este 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:
Ahora, es probable que no desee establecer esta información manualmente cada vez que actualice. Por fortuna, el CLI evitará que envíe una actualización sin esta metadatos
Para subir correctamente un paquete cuando se utiliza la metadata opción, necesita pasar el --min-update-version con el versión semver válida. Algo como esto:
El --min-update-version no es la ÚNICA forma de hacer compatibilidad. --auto-min-update-versionTambién existe la
. Aquí está cómo funciona. bundle compatibility La orden de comando.
Segundo, si la nueva versión es 100% compatible reutiliza la min_update_version desde la última versión del canal.
Si no, entonces establece la min_update_version a la número de paquete de la versión subida recientemente.
Siempre obtendrá información sobre qué es el min_update_version cuando se utiliza esta opción. Se verá algo así:
Si la nueva versión no es compatible debería verse algo así:
Encriptación de extremo a extremo (Sin confianza)
Título de la sección “Encriptación de extremo a extremo (Sin confianza)”Capgo admite encriptación de extremo a extremo, lo que significa que su paquete (code) se encripta antes de enviarlo a la nube y se descifra en el dispositivo. Para ello, necesita generar una pareja de claves RSA, puede utilizar el siguiente comando para generarla.
El sistema de encriptación es una combinación de RSA y AES, la clave RSA se utiliza para encriptar la clave AES, y la clave AES se utiliza para encriptar el archivo.
Ver a continuación para obtener más información sobre el sistema de cifrado.
Esquema de cifrado
Crear clave para tu aplicación
Crear clave para tu aplicaciónnpx @capgo/cli key create
Opcionalmente, puedes proporcionar: --force para sobreescribir la clave existente. Este comando creará para ti una pareja de claves en tu aplicación, y te pedirá que guardes la clave privada en un lugar seguro. Se recomienda no comitar la clave privada en Git, y no compartirla con nadie.
Después de tu prueba local, elimina la clave del archivo de configuración y agrega la en el paso de CI con
key save
Guardar clave en la configuración de tu aplicación
Guardar clave en la configuración de tu aplicaciónnpx @capgo/cli key save
Opcionalmente, puedes proporcionar:
--key [/path/to/my/public_key] el camino de tu archivo de clave pública.
--key-data [publicKey] los datos de la clave pública, si deseas utilizarla de forma inline. Este comando es útil si siguió la recomendación y no comitó la clave en la configuración de tu aplicación.
integración de CI
Sección titulada “integración de CI”Para automatizar tu trabajo, te recomiendo que hagas que la acción GitHub se encargue de enviar a nuestro servidor
Nuestra aplicación de demostración
Sección titulada “Nuestra aplicación de demostración”No te olvides de configurar la variable de entorno de CI con tu clave API
Sigue adelante desde Comandos
Sección titulada “Sigue adelante desde Comandos”Si estás utilizando Comandos para planificar la consola de dashboard y API operaciones, conectarlo con API Resumen para los detalles de implementación en API Resumen, Introducción para los detalles de implementación en Introducción, API Claves para los detalles de implementación en API Claves, Dispositivos para los detalles de implementación en Dispositivos, y Paquetes para los detalles de implementación en Paquetes.