Saltar al contenido

Endpoint de actualización API

GitHub

Aquí tienes un ejemplo de code en JavaScript para enviar una actualización al plugin

interface AppInfos {
version_name: string
version_build: string
version_os: string
custom_id?: string
is_prod?: boolean
is_emulator?: boolean
plugin_version: string
platform: string
app_id: string
device_id: string
}
export const handler: Handler = async (event) => {
const body = JSON.parse(event.body || '{}') as AppInfos
const {
platform,
app_id,
version_os,
device_id,
version_name,
version_build,
plugin_version,
} = body
console.log('update asked', platform,
app_id,
version_os,
device_id,
version_name,
version_build,
plugin_version)
if (version_name === '1.0.0') {
return {
version: '1.0.1',
url: 'https://apiurl.com/mybuild_101.zip',
checksum: 'sha256_checksum_of_bundle',
}
}
else if (version_name === '1.0.1') {
return {
version: '1.0.2',
url: 'https://apiurl.com/mybuild_102.zip',
checksum: 'sha256_checksum_of_bundle',
}
}
else {
return {
message: 'Error version not found'
version: '',
url: '',
}
}
}

Para bundles sin cifrar, tu endpoint debería devolver:

{
"version": "1.0.2",
"url": "https://apiurl.com/mybuild_102.zip",
"checksum": "sha256_checksum_of_bundle"
}

Para bundles cifrados, también debes incluir la session key:

{
"version": "1.0.2",
"url": "https://apiurl.com/mybuild_102.zip",
"checksum": "encrypted_checksum_from_encrypt_command",
"session_key": "ivSessionKey_from_encrypt_command"
}

Y si no hay actualización ni error, añade la message clave y, opcionalmente, un error:

{
"message": "Version not found",
"error": "The backend crashed",
"version": "1.0.2",
}
  • checksum: Hash SHA256 de tu archivo zip del bundle para verificar la integridad
  • session_key: Solo es necesario para bundles cifrados; este es el ivSessionKey devuelto por el comando encrypt
  • version: Identificador de versión en formato semver
  • url: URL HTTPS donde se puede descargar el bundle

Para aprender a crear bundles compatibles y generar checksums, consulta la documentación de Auto Update.

Para bundles cifrados, consulta la documentación de Encrypted Bundles donde se explica todo el flujo de cifrado.

Si estás usando Endpoint de actualización API para planificar la automatización de CI/CD, conéctalo con Al usar @capgo/capacitor-updater para la funcionalidad nativa al usar @capgo/capacitor-updater, CI/CD de Capgo para el flujo de trabajo del producto en Capgo CI/CD, Native Builds de Capgo para el flujo de trabajo del producto en Capgo Native Builds, Integraciones de Capgo para el flujo de trabajo del producto en Capgo Integrations, y Integración CI/CD para el detalle de implementación en CI/CD Integration.