Photo par pxhere.com

Comment builder, signer et déployer votre application Xamarin.Android avec Azure DevOps et App Center

Créez votre apk et distribuez-le à vos utilisateurs.

Posted by Damien Aicheh on September 10, 2019 · 5 mins

Dans ce tutoriel, je vais vous montrer comment builder et signer votre application Xamarin.Android et la distribuer à vos utilisateurs via App Center. Passons à Azure DevOps pour commencer!

Dans l’onglet Pipelines, créez un New pipeline et suivez les 4 étapes pour obtenir le code source à partir du repository approprié. Azure DevOps créera automatiquement un nouveau fichier azure-pipelines.yml à la racine du dossier de votre projet. C’est à cet endroit que la définition du job sera définie et ensuite interprétée par Azure DevOps.

Créer votre variables group

Ce job nécessitera plusieurs variables telles que le chemin du dossier, des variables d’environnements et des mots de passes. Donc, pour gérer tout cela, créons un variable group. Si vous n’êtes pas familier avec cela, vous pouvez consulter mon précédent tutoriel à ce sujet.

Pour ce tutoriel, le groupe de variables sera appelé android-pipeline.

Créer le build

Commençons par charger le groupe de variables et restaurer les packages Nugets comme ceci:

trigger:
- master

pool:
  vmImage: 'macos-latest'

variables:
  - group: android-pipeline

steps:

- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'

Maintenant, nous pouvons ajouter la tâche de build comme ci-dessous:

- task: XamarinAndroid@1
  inputs:
    projectFile: '**/*droid*.csproj'
    outputDirectory: '$(outputDirectory)'
    configuration: '$(buildConfiguration)'

Les variables outputDirectory et buildConfiguration sont définies dans les groupes de variables avec les valeurs suivantes:

Variable groups

Maintenant, si vous exécutez votre job pour la première fois, vous obtiendrez un message d’erreur vous demandant de donner l’accès à votre variables group:

Variable groups

Acceptez en cliquant sur Authorize resources, redémarrez le build.

Signez votre application

Nous devons maintenant signer notre application avec un keystore. Créez-le et chargez-le dans l’onglet Pipelines > Library > Secure files afin qu’il soit accessible dans la tâche de signature. Pour ce tutoriel, le keystore. s’appellera production.jks.

Ensuite, nous devons fournir la clé de l’alias et le mot de passe, ainsi que le mot de passe du keystore. Pour des raisons de sécurité, ajoutons ces informations à notre variables group. Maintenant, nous avons toutes ces variables:

Variable groups

Avec toutes les variables et la configuration du keystore, nous sommes prêts à configurer notre tâche AndroidSigning@3 pour signer notre application Xamarin.Android. Ajoutons donc la tâche suivante :

- task: AndroidSigning@3
  inputs:
    apkFiles: '**/*.apk' 
    apksign: true
    apksignerKeystoreFile: 'production.jks'
    apksignerKeystorePassword: $(keystore.password)
    apksignerKeystoreAlias: $(key.alias)
    apksignerKeyPassword: $(key.password)
    apksignerArguments: --out $(outputDirectory)/app.release.apk
    zipalign: true

L’option --out de apksignerArguments nous permet de spécifier un nom pour le fichier de sortie apk que nous venons de signer.

Déployer vers App Center

Nous avons maintenant notre apk signé et prêt à être envoyé à nos utilisateurs. Mon outil préféré pour cela est App Center. Vous pouvez partager votre application avec différents groupes de testeurs avant de la publier sur un store et c’est très utile.

Continuons en configurant la connexion entre App Center et Azure DevOps. Pour ce faire, il suffit de suivre mon tutorial à ce sujet, puis continuez à l’étape suivante.

Si vous avez suivi correctement les instructions précédentes, vous pouvez maintenant ajouter votre slug d’application et votre ID de groupe de distribution au groupe de variables, comme suit:

Variable groups

Enfin, nous pouvons ajouter la tâche finale pour déployer notre apk dans App Center:

- task: AppCenterDistribute@3
  inputs:
    serverEndpoint: 'VSAC'
    appSlug: '$(appSlug)'
    appFile: '$(outputDirectory)/app.release.apk'
    releaseNotesOption: 'input'
    releaseNotesInput: 'New version'
    destinationType: 'groups'
    distributionGroupId: '$(distributionGroupId)'

Si vous exécutez votre build maintenant, vous pourrez voir votre apk déployé dans App Center pour le groupe approprié.

Package delivered

Vous pouvez maintenant la télécharger sur un appareil Android et la tester!

Sources:

Vous trouverez un exemple de code sur ce répertoire Github.

Happy codding !

Vous avez aimé ce tutoriel ? Laissez une étoile sur le répertoire Github associé !

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