Allez directement au contenu principal
Alternatives

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

Permettre à vos utilisateurs de tester la version bêta sans avoir besoin du processus de TestFlight ou de Google, il suffit d'ajouter un bouton dans votre application Ionic, et ils sont prêts !

Crédits de l'article

Martin Donadieu

Écrivain

Valérie

Relecteur

Jordan

Éditeur

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

Avant-propos

Lorsque vous commencez à apprécier le système de mise à jour de Capgo, comme moi pour mes applications, vous commencerez à ressentir le sentiment « Qu'est-ce que je pourrais faire de plus ? »

J'ai ressenti le même sentiment, mais puisque je suis le créateur de Capgo, j'ai pu jeter un coup d'œil !

Puisque tout est open-source, vous avez également ce pouvoir :)

La prochaine douleur que j'ai dans le processus de distribution de l'application Capacitor est de faire tester les mises à jour à d'autres collègues.

Avec TestFlight, le problème est simple, mais faire comprendre aux gens 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 effectué par un bot qui peut prendre 5 minutes ou 5 heures, vous ne savez jamais.

J'ai eu souvent mon présentation retardée par cela…

Et pour Google, c'est encore pire, le grand mystère de ma vie, la mise en production d'une version prend moins de 2 heures, mais la mise en production d'une bêta proche prend 1-2 jours.

Solution

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

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

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

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

Super façon automatique

Cela peut être utile lorsque vous ne souhaitez pas créer votre propre backend pour le canal, c'est rapide à mettre en œuvre.

Avec cela, la seule chose que vous devez faire est d'autoriser l'un de vos canaux à être auto pour le paramétrage.

Autoriser le paramétrage auto dans Capgo

Et puis ajoutez ensuite cela dans le code de votre application Ionic, pour une expérience optimale, utilisez cela après que l'utilisateur clique sur un bouton comme « s'inscrire pour 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. Autorisez les utilisateurs à copier leur ID de appareil depuis votre application et envoyez-lez manuellement à vous, 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 admin rôle, par exemple.

Then Go to the Web app or native app Capgo, connect as app admin, select your app, click on the device list.

Alors mettez ensuite dans la barre de recherche l'ID de l'appareil, cliquez sur celui trouvé et puis cliquez sur le lien du canal choisissez le developmentdemandez à votre collègue d'ouvrir l'application à nouveau, attendez 30 sec et ouvrez-fermez.

Il devrait obtenir votre version.

Voie automatique

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

Même chose que la voie manuelle, vous devez obtenir l'ID du dispositif

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 vous le faites.

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

Ensuite, dans votre backend, vous devez l'envoyer à Capgo backend également. Voici deux code exemples :

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 optional, if provide it will override the channel, that useful 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 vers l'URL déployée avec la méthode POST pour ajouter et la méthode DELETE pour supprimer.

Après cette configuration, essayez d'ajouter un bouton dans votre application pour vous inscrire à la chaîne, et vérifiez dans l'application web si cela a été configuré.

Vous pouvez également envoyer null pour supprimer la prise en charge

Si vous devez vérifier de manière programmée quelle mise à jour est appliquée 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())

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

Si vous utilisez Comment envoyer une mise à jour spécifique à un utilisateur ou un groupe to plan channel routing and staged rollout, connect it with Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Solution de test bêta pour le flux de travail du produit dans la Solution de Test Beta. Solution de ciblage de version pour le flux de travail du produit dans la Solution de ciblage de version.

Mises à jour instantanées pour les applications Capacitor

Quand un bug de la couche web est en ligne, expédiez la correction par Capgo au lieu d'attendre des jours pour l'approbation de l'app store. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les modifications natives restent dans la voie de revue normale.

Actualités de notre Blog

Capgo vous offre les meilleures informations nécessaires pour créer une application mobile véritablement professionnelle.