Allez directement au contenu principal
alternatives

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

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

Martin Donadieu

Martin Donadieu

Spécialiste du contenu marketing

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

Avant-propos

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

J'ai ressenti ce sentiment également, mais étant le créateur de Capgo, j'ai pu jeter un coup d'œil !

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

Le prochain problème que j'ai rencontré 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 il faut du temps pour convaincre les gens de rejoindre votre équipe et de comprendre comment obtenir l'application.

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

J'ai souvent vu mon présentation retardée par ce processus…

Et pour Google, c'est encore pire, la grande énigme de ma vie, la mise en production d'une version prend moins de 2 heures, mais la mise en production d'une 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 La mise à jour sera effectuée pour tous les utilisateurs (si le canal de production est défini sur la valeur par défaut)

If vous faites cela, la version se rendra dans un canal différent, cela peut être automatisé dans npx @capgo/cli@latest bundle upload -c development l'action __CAPGO_KEEP_0__ GitHub action.

Mode automatique Super

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

En utilisant cela, la seule chose que vous devez faire est d'autoriser l'un de vos canaux à être auto-configuré.

Permettre la configuration auto dans __CAPGO_KEEP_0__

Et puis ajoutez cela dans le Capgo de votre application Ionic, pour une meilleure expérience, utilisez cela après que l'utilisateur clique sur un bouton comme « s'inscrire pour la beta »

And then add this in the code of your Ionic app, for best experience, use this after the user clicks on a button like “register for beta”

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.setChannel({ channel: 'beta' })

Cela peut être utile pour votre équipe interne, c'est rapide à mettre en œuvre. Permettre aux utilisateurs de copier leur ID de device à partir de votre application et de le transmettre à vous manuellement, cet outil __CAPGO_KEEP_0__ vous aidera à l'obtenir :

This can be useful for your internal team, this is fast to implement. Allow users to copy their deviceID from your app and send it to you manually, this code will help you to get it:

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.getDeviceId()

__CAPGO_KEEP_0__ admin rôle, par exemple.

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

Alors, insérez dans la barre de recherche l'ID de l'appareil, cliquez sur celui trouvé et cliquez ensuite sur le lien du canal, choisissez le development, demandez à votre collègue d'ouvrir l'application à nouveau, attendez 30 secondes et ouvrez-la.

Il devrait obtenir votre version.

Méthode automatique

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

Même chose que la méthode manuelle, vous devez obtenir l'ID de l'appareil

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.getDeviceId()

Mais cette fois, vous devez le transmettre 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 le transmettre à Capgo backend également. Voici 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 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)
}

En envoyant 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 abonner à la chaîne, et vérifiez dans l'application web si cela a été configuré.

Vous pouvez également envoyer null pour supprimer l'override

Si vous avez besoin de vérifier de manière programmée quel override est configuré sur un appareil, vous pouvez le récupérer 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 de la même manière que dans 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 pour planifier la routage de la chaîne et la mise en production progressive, connectez-le avec 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 Solution de test bêta, et Solution de ciblage de version pour le flux de travail du produit dans Solution de ciblage de version.

Mises à jour en direct pour les applications Capacitor

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

Commencez dès maintenant

Dernières actualités de notre Blog

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