Accueil > Mobile, Outillage > Déploiement OTA d’une application iOS avec TestFlight

Déploiement OTA d’une application iOS avec TestFlight

Lors de nos itérations de développement, notamment au sein de projets agiles, nous avons souvent besoin de distribuer des versions « beta » à un parc d’utilisateurs, aux clients, etc. Pour cela, nous allons réaliser des versions dites « Adhoc » que l’on va distribuer Over The Air à un parc d’utilisateurs/testeurs via TestFlight.

L’avantage de cet outil en ligne réside dans le fait qu’il s’intègre très bien avec la plateforme d’intégration continue Jenkins via le plugin idoine, permettant de facto l’automatisation des déploiements.

 

Présentation générale

TestFlight est un service Web SAAS gratuit. Il permet notamment de centraliser l’inscription des testeurs, de les répartir en équipes et de leur mettre à disposition des versions AdHoc d’une ou plusieurs applications.

Ce service est dédié aux applications iOS. Des alternatives telles que Appaloosa (payant et multi-plateformes) ou Zubhium (gratuit et dédié à Android, certaines prestations payantes) existent. Elles ne seront pas présentées ici mais proposent toutes une fonctionnalité commune : déployer automatiquement une application mobile sur un store privé. C’est extrêmement intéressant pour lancer une campagne de beta-testing ou simplifier le déploiement d’une version de démonstration sur le device d’un client.

Pour utiliser ce service, il faut d’abord s’inscrire sur le site https://testflightapp.com. Ensuite, on peut créer des équipes, des listes de déploiement et inviter des testeurs qui vont pouvoir « enregistrer » leurs devices de test sur le service. De cette manière, on peut facilement récupérer l’UDID de chaque iPhone, iPod ou iPad pour les rajouter à notre Provisionning Profile Adhoc sur le site d’Apple.

La récupération des UDIDs est donc simplifiée par le système d’invitations. Ce système évite les erreurs de saisie des identifiants, celle-ci étant généralement effectuée à la main. Les listes de déploiement (Distribution Lists) permettent de choisir quelle personne peut accéder à quelle application, pratique lorsqu’on travaille sur plusieurs projets.

A noter que TestFlight fournit aussi un SDK (non testé ici) qui permet d’ajouter des fonctions plus avancées telles que:

  • Enregistrer des sessions d’utilisation : utile pour analyser comment l’application est utilisée en conditions réelles
  • Gestion des crashlogs qui sont reportés automatiquement
  • Logging
  • Gestion du feedback au sein de l’application elle-même
  • Notification des nouvelles versions directement au sein de l’application

 

Exemple d’utilisation

Voici ce que l’on peut obtenir avec cette solution:

  • On peut uploader un build soit par drag’n’drop via un browser, soit via l’API depuis un serveur d’intégration (plugin Jenkins ou script shell).
  • Chaque membre reçoit un email notifiant la disponibilité d’un nouveau build (ici le n°15). Il contient un lien direct pour l’installation et permet d’envoyer un feedback en répondant simplement au message :
Jenkins Adhoc TestflightEmailNotif

 

  • On accède au store depuis un raccourci placé sur le dashboard du device :
TestFlight Dashboard

 

  • Sur notre device de test, on voit apparaitre le nouveau build dans le store hébergé par TestFlight

TestFlight Adhoc LatestBuild

 

  • Sur notre device de test, on peut aussi accéder aux anciens builds d’une application depuis la liste suivante :
TestFlight Adhoc PreviousBuilds

 

  • On peut ainsi facilement installer une version précédente, ce qui est notamment très utile lorsque l’on a besoin de reproduire un problème lié à une ancienne version :

TestFlight Adhoc OldBuild

 

 

N.B. Il est intéressant de créer un Tag sur le serveur de versioning utilisé à chaque fois que l’on publie un nouveau build afin d’assurer une tracabilité au niveau du code source.

 

Conclusion

 

Les points à retenir:
 
Avantages :

  • Bonne intégration grâce au plugin Jenkins qui permet des déploiements automatisés
  • Gestion d’un parc de beta users sous la forme d’équipes de testeurs (exemple : une liste par projet)
  • Récupération facilitée des UDIDs des différents devices de test, via un système d’invitations.
  • Déploiement OTA des applications
  • Notifications par mail à chaque nouvelle version
  • On peut facilement envoyer un feedback sur un build en répondant à cet email de notification. Le feedback est alors automatiquement intégré au portail TestFlight.
  • La dernière version de l’appli est directement accessible depuis une icône TestFlight sur le dashboard du device
  • On peut facilement accéder aux versions précédentes d’une application

 

Limitations :

  • Il faut au moins un device dédié par testeur, sinon le testeur ne voit pas les notifications des builds
  • Le service rencontre parfois quelques problèmes lorsque plusieurs personnes se partagent un device. En effet, un device ne peut être associé qu’à un seul compte TestFlight à un instant T et on rencontre parfois des soucis lors des changements de propriétaires. Ceci est certainement dû au fait que TestFlight est en cours de mise au point et ne couvre pas complètement ce genre de situations.
  • L’approche avec le SDK ajoute de nombreuses fonctions mais semble relativement intrusive à première vue. A essayer…

 

 

Categories: Mobile, Outillage Tags: , , , , ,
  1. Pas encore de commentaire


un + = 2