alternatives

Comment envoyer une mise à jour spécifique à un utilisateur ou un groupe

Permettez à vos utilisateurs de tester la version bêta sans passer par TestFlight ou le processus bêta de Google, ajoutez simplement un bouton dans votre application Ionic et c'est parti !

Comment envoyer une mise à jour spécifique à un utilisateur ou un groupe

Préface

Quand vous commencez à apprécier le système de mise à jour de Capgo, comme moi pour mes applications, vous commencez à vous demander “Et si je voulais plus ?”

J’ai eu ce sentiment aussi, mais comme je suis le créateur de Capgo, j’ai pu y regarder de plus près !

Comme tout est open-source, vous avez aussi ce pouvoir :)

La prochaine difficulté que j’ai rencontrée dans le processus de distribution d’applications Capacitor est de faire tester les mises à jour par d’autres membres de l’équipe !

Avec TestFlight, le problème est simple, intégrer des personnes dans votre équipe et leur faire comprendre comment l’obtenir prend du temps !

Et bien sûr, chaque fois que vous envoyez à Apple, vous avez un processus de révision aléatoire par un bot qui peut prendre 5 minutes ou 5 heures, on ne sait jamais.

J’ai eu plusieurs fois ma présentation retardée à cause de cela…

Et pour Google c’est encore pire, le grand mystère de ma vie, publier une version de production prend moins de 2 heures, mais publier une version bêta fermée prend 1 à 2 jours.

Solution

Pour résoudre cela, j’ai créé le système de Canaux dans Capgo.

npx @capgo/cli@latest bundle upload -c production mettra à jour tous les utilisateurs (si le canal production est défini par défaut)

Si vous faites npx @capgo/cli@latest bundle upload -c development alors la version atterrit dans un canal différent, cela peut être automatisé dans GitHub action.

Ensuite, vous avez 2 façons de permettre aux utilisateurs d’obtenir les mises à jour du canal

Méthode Super automatique

Cela peut être utile quand vous ne voulez pas créer votre propre backend pour la configuration des canaux, c’est rapide à mettre en œuvre.

Avec celle-ci, la seule chose que vous devez faire est d’autoriser l’un de vos canaux à être auto-configurable.

Autoriser l'auto-configuration dans Capgo

Et ensuite ajoutez ceci dans le code de votre application Ionic, pour une meilleure expérience, utilisez ceci après que l’utilisateur clique sur un bouton comme “s’inscrire à la bêta”

import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.setChannel({ channel: 'beta' })

Méthode manuelle

Cela peut être utile pour votre équipe interne, c’est rapide à mettre en œuvre. Permettez aux utilisateurs de copier leur deviceID depuis votre application et de vous l’envoyer manuellement, ce code vous aidera à l’obtenir :

import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()

Cachez un bouton quelque part dans votre application, ou montrez le bouton uniquement aux utilisateurs connectés avec un rôle admin, par exemple.

Ensuite, allez sur l’application Web ou native Capgo, connectez-vous en tant qu’administrateur d’application, sélectionnez votre application, cliquez sur la liste des appareils.

Puis mettez dans la barre de recherche le deviceID, cliquez sur celui trouvé puis cliquez sur le lien Canal, choisissez development, demandez à votre coéquipier d’ouvrir à nouveau l’application, attendez 30 secondes et ouvrez fermez.

Il devrait obtenir votre version.

Méthode automatique

Cela peut être utile pour vos testeurs bêta, c’est plus long à mettre en œuvre.

Comme pour la méthode manuelle, vous devez obtenir le deviceID

import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()

Mais cette fois, vous devez l’envoyer automatiquement à votre backend, je vous laisse décider comment faire.

Je vous suggère simplement de le stocker dans une base de données, cela vous facilitera la vie plus tard.

Ensuite, dans votre backend, vous devez l’envoyer au backend de Capgo aussi. Ci-dessous deux exemples de code : NodeJS

import axios from 'axios'
await axios.post('https://api.capgo.app/device', {
app_id: 'YOUR_APP_ID',
device_id: 'DEVICE_ID',
channel: 'CHANNEL_NAME', // The name of the channel, or undefined if version_id provided
version_id: 'VERSION_NAME' // this is optionnal, if provide it will override the channel, that usefull when you want to debug only one user.
}, {
headers: {
authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
}
})
Cloudflare
addEventListener('fetch', (event) => {
event.respondWith(
handleRequest(event.request).catch(
err => new Response(err.stack, { status: 500 })
)
)
})
async function handleRequest(request) {
const { pathname, method } = new URL(request.url)
const body = await request.json()
const newBody = JSON.stringify({
app_id: 'YOUR_APP_ID',
device_id: body.device_id,
channel: 'alpha'
})
const newUrl = new URL('https://api.capgo.app/device')
const options = {
headers: {
authorization: 'YOUR_API_KEY',
},
method: 'POST',
body: newBody
}
if (request.method === 'DELETE') {
// DELETE the channel link
options.method = 'DELETE'
return fetch(newUrl.toString(), options)
}
return fetch(newUrl.toString(), options)
}

Et envoyez simplement votre device_id dans le corps de la requête à l’URL déployée avec POST pour ajouter et DELETE pour supprimer.

Après cette configuration, essayez d’ajouter un bouton dans votre application pour opter pour le canal, et vérifiez dans l’application web si cela a été défini.

Vous pouvez également envoyer null pour supprimer la surcharge

Si vous devez vérifier programmatiquement quelle surcharge est définie sur un appareil, vous pouvez obtenir sur la même URL

import axios from 'axios'
const res = await axios.get('https://api.capgo.app/device?app_id=YOUR_APP_ID&device_id=DEVICE_ID', {
headers: {
authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
}
})
console.log('data', res.json())
Mises à jour instantanées pour les applications CapacitorJS

Poussez instantanément des mises à jour, des corrections et des fonctionnalités sur vos applications CapacitorJS sans les délais de l'App Store. Expérimentez une intégration transparente, un cryptage de bout en bout et des mises à jour en temps réel avec Capgo.

Commencez Maintenant

Dernières actualités

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.