Aller au contenu

Endpoint de mise à jour API

GitHub

Voici un exemple de code en JavaScript pour envoyer une mise à jour au 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: '',
}
}
}

Pour bundles non chiffrés, votre endpoint doit retourner :

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

Pour bundles chiffrés, vous devez également inclure la clé de session :

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

Et s'il n'y a ni mise à jour ni erreur, ajoutez la message clé et éventuellement une error:

{
"message": "Version not found",
"error": "The backend crashed",
"version": "1.0.2",
}
  • checksum: hash SHA256 de votre fichier zip du bundle pour la vérification d'intégrité
  • session_key: requis uniquement pour les bundles chiffrés — c'est la clé ivSessionKey renvoyée par la commande encrypt
  • version: l'identifiant de version au format semver
  • url: l'URL HTTPS où le bundle peut être téléchargé

Pour apprendre à créer des bundles compatibles et générer des checksums, consultez la documentation Auto Update.

Pour les bundles chiffrés, consultez la documentation Encrypted Bundles qui explique tout le flux de chiffrement.

Continuer depuis l'endpoint de mise à jour API

Section intitulée « Aller plus loin avec l'endpoint Update API »

Si vous utilisez Endpoint de mise à jour API pour planifier l'automatisation CI/CD, et le connecter avec Utiliser @capgo/capacitor-updater pour la capacité native dans « Utiliser @capgo/capacitor-updater », CI/CD Capgo pour le workflow produit dans le CI/CD de Capgo, Capgo Native Build pour le workflow produit dans les Native Builds de Capgo, Intégrations Capgo pour le workflow produit dans les intégrations Capgo, et Intégration CI/CD pour le détail d'implémentation dans l'intégration CI/CD.