Photo par JJ Ying

Configurez Azure DevOps pour distribuer votre application Android sur le Google Play

Envoyez votre application à vos utilisateurs en un clic!

Créé par Damien Aicheh le 25/10/2021 · 6 mins

Lors du développement d’une application pour Android, vous aurez probablement besoin de la distribuer à vos testeurs ou à vos utilisateurs finaux. Dans ce tutoriel nous allons découvrir comment paramétrer la connexion de service pour pouvoir uploader vos packages sur le Google Play depuis Azure DevOps.

Cet article suppose que vous avez déjà buildé et signé un Android App Bundle (aab) pour pouvoir l’uploader.

Créer le compte de service Google

La première chose à faire est de vous connecter à la console de développeur. Dans le menu de gauche, sélectionnez Setup > API access, puis dans la section service accounts sélectionnez Create new service connection :

New service connection

Une popup apparaîtra, cliquez sur le lien bleu pour accéder à Google Cloud Platform. Vous arriverez dans l’interface IAM & Admin :

IAM Admin

Cliquez ensuite sur le bouton create service account pour l’initialiser. Donnez-lui un nom et une description afin de vous souvenir pour quelle application vous l’avez fait :

Account detail

Dans la deuxième étape, choisissez le rôle Owner pour ce service :

Account detail

La dernière étape peut être laissée telle quelle. Validez la création et si elle réussit vous aurez quelque chose comme ceci :

Account detail

Avec ce service Google créé, nous devons maintenant créer une clé de compte de service qui sera utilisée dans Azure DevOps plus tard. Pour ce faire, cliquez sur les trois petits points dans la colonne des actions à droite et sélectionnez Manage Keys.

Dans la page suivante sélectionnez Add Key puis JSON et validez.

Account detail

Cela demandera une popup pour télécharger la clé en tant que fichier JSON. Assurez-vous de l’enregistrer dans un stockage sécurisé, un Key Vault par exemple.

Dernière étape, revenez à la console Google Play et dans la section de connexion au service, cliquez sur le bouton Grant Access pour inviter votre compte de service Google en tant qu’utilisateur de votre compte Google Play Console. Une page d’autorisation s’affichera, laissez les options par défaut et validez.

Créer la connexion au service

Il est temps de créer la connexion au service qui permettra à Azure DevOps d’uploader votre package sur la Google Play Console.

Dans Azure DevOps, accédez à Project Settings > Service Connections et cliquez sur le bouton New service connection et sélectionnez Google Play dans la liste.

Dans la saisie de l’e-mail, vous devez spécifier l’adresse e-mail du compte de service Google que vous venez de créer et qui se termine par gserviceaccount.com.

Ajoutez ensuite la clé privée de la console développeur de Google Play qui se trouve dans le fichier JSON que vous avez précédemment téléchargé. Assurez-vous de copier coller toute la valeur de private_key :

{
  "type": "service_account",
  //...
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgk......_KEYWGEAFRPqqAs=\n-----END PRIVATE KEY-----\n",
  //...
}

Donnez-lui enfin un nom (évitez d’utiliser l’espace), celui-ci sera utilisé dans votre pipeline.

Service connection

Utiliser la task Google Play

Dans votre pipeline, vous pouvez désormais utiliser la task officielle Google Play. Si cette task n’est pas déjà installée dans votre organisation, n’hésitez pas à le faire maintenant, sinon vous ne pourrez pas y accéder dans vos pipelines.

Voici un exemple de template YAML qui utilise cette task:

jobs:
  - job:
    displayName: 'Google Play Store'

    steps:
      - task: DownloadBuildArtifacts@0
        displayName: 'Download artifacts'
        inputs:
          buildType: 'current'
          downloadType: 'specific'
          downloadPath: 'releases_drop'

      - task: GooglePlayRelease@4
        inputs:
          serviceConnection: 'GooglePlayConnectionService'
          applicationId: 'com.yourcompany.yourapp'
          action: 'SingleBundle'
          bundleFile: 'releases_drop/android_packages/*.aab'
          track: 'internal'

En supposant que vous ayez déjà votre aab d’un job précédent, nous le téléchargeons à partir d’artefacts et l’uploadons à avec la task GooglePlayRelease@4 avec la connexion de service GooglePlayConnectionService.

Lorsque le pipeline sera exécuté, votre aab sera uploadé dans la section de test interne de Google Play. Si vous souhaitez le télécharger directement dans un autre environnement (production par exemple) regardez l’option track.

Le premier upload sera à faire manuellement pour laisser Google Play initialiser votre application.

Touche finale

Vous pouvez désormais uploader votre package directement sur le Google Play Store en un clic ! Cela permettra à tous les membres de votre équipe de le faire de manière sécurisée et autonome.

Happy coding!

N'hésitez pas à me suivre sur pour ne pas rater mon prochain tutoriel !