Test flight et les outils de distribution continue par simone civetta de xebia

Preview:

Citation preview

TestFlight et les outils de distribution continue

Simone Civetta Xebia IT Architects

About me

MAM

Mobile Application Management

Plateformes permettant de controller l’accès aux applications mobiles

Gèrent le déploiement et la distribution

Idéales pour la mise en place d’une stratégie BYOD dans les entreprises

Peuvent prévoir des systèmes d’analyse d’usage (ex. nombre des lancements, durée des sessions)

SaaS

TestFlight

TestFlightTestFlight est une plateforme qualifiée de Mobile Application Manager (MAM), permettant notamment :

le déploiement des build iOS et Android sur des terminaux mobiles

la gestion des utilisateurs au sein de plusieurs équipes

le suivi des usages, des sessions utilisateurs et des crashes

FonctionnalitésGestion automatique du profile d’approvisionnement

Detecte automatiquement nom de l’appli, version, icône

Récolte des crash (avec gestion des dsym)

SDK

Feedbacks

Checkpoints

Remote logging!

Plugin Jenkins disponible

Gestion des teams

Utilisateurs et applications

2 sections principales :

Apps : permet upload / modification / suppression des builds et le suivi des bugs et de l’utilisation de l’application.

People : donne accès à la gestion des utilisateurs de l’équipe, de la soumission des invitations ainsi que de la révocation des accès

Apps : détail d’un build

Apps : droits!

!

!

!

!

!

!

La gestion du profile d’approvisionnement est intégrée dans TF

People : gestion des utilisateurs

SDK / 1SDK disponible pour iOS et Android.

Compatible avec CocoaPods

Insérer dans application:didFinisLaunchingWithOptions:

[TestFlight  takeOff:APP_TOKEN];  

!

L’App Token est l’ID utilisé par TestFlight afin de reconnaître l’application qui génère la session. Information disponible sur la page App Token sur le site TestFlight.

Chaque token est uniquement attribué à un Bundle ID.

SDK / 2Paramètres supplémentaires peuvent être ajoutés avant le takeOff :

addCustomEnvironmentInformation:forKey:      

permet de remonter des informations spécifiques à afficher dans le panneau de la session

SDK / 3Remote logging : possibilité de rediriger les logs vers TestFlight

Accessibles directement en ligne, dans le détail d’une session utilisateur !//  MyApp-­‐prefix.pch        #import  "TestFlight.h"      #define  NSLog(__FORMAT__,  ...)  TFLog((@  "%s  [Line  %d]  "  __FORMAT__),  __PRETTY_FUNCTION__,  __LINE__,  ##__VA_ARGS__)  

!

Checkpoints : mots-clés définis par le développeur

Permettent de suivre les étapes qui sont effectuées par l’utilisateur final ! [TestFlight passCheckpoint:CHECKPOINT_NAME];

Support complet de iOS et Android

Support complet de iOS et Android

Apple…

HockeyApp

IntroductionHockeyApp est une solution permettant le déploiement de builds :

iOS

Mac OS

Android

Windows Phone

Windows 8

FonctionnalitésGestion automatique du profile d’approvisionnement

Detecte automatiquement nom de l’appli, version, icône

Récolte des crash (avec gestion des dsym)

SDK

Feedbacks

Bug Tracker!

Authentification in-app des utilisateurs

Plugin Jenkins disponible

PlansSolution payante

SDK

Récolte des crash

Feedbacks

Authentification in-app des utilisateurs

Notification de maj (alertView in-app)

et aussi…Ensemble d’API pour la création et la gestion des membres de l’équipe, invitations, profils d’approvisionnement, crash, feedback, etc.

WebHooks : possibilité de notifier une URL personnalisée à chaque fois qu’un événement spécifique a eu lieu (ex. nouveau crash)

Self-hosted

HockeyKit

Introduction

HockeyKit est une solution client/serveur gratuite

Développée par l’équipe de HockeyApp

Serveur : quelques fichiers PHP

Installation très facile sur n’importe quel solution de hébergement PHP (pas besoin d’une BDD)

FonctionnalitésNotifications in-app de maj disponibles

Simples statistiques de téléchargement (iOS seulement)

Publication des profils d’approvisionnement

SDK (très basique)

Page de release notes

SDK

Notification in-app de maj disponibles

Simple statistiques (iOS seulement)

Pages AppStore-like

Exemple

Knappsack

IntroductionKnappsack est une solution SaaS payante…

…dont le code source est distribué gratuitement sur GitHub

Supporte iOS et Android

Serveur : Java (Spring)

Interface optimisée pour l’accès depuis mobile (JQuery Mobile)

FonctionnalitésGestion avancée des utilisateurs:

Organisations

Groupes d’utilisateurs

Gestion des invitations

Possibilité d’organiser les applications en categories

Simples statistiques de téléchargement

API pour upload/gestion des builds

Plugin Jenkins disponible

Exemple

Shenzhen

IntroductionSolution de déploiement de fichiers ipa uniquement

Fait partie des outils Nomad (nomad-cli.com) par Mattt

Supporte :

TestFlight

HockeyApp

Amazon S3

FTP/SFTP

Entièrement en ligne de commande

ExempleLa commande!

ipa  distribute:ftp    -­‐f  Xebia.ipa  -­‐-­‐host  ftp.example.com  -­‐u  MY_USER  -­‐p  MY_PWD  -­‐-­‐mkdir  -­‐P  /apps/{CFBundleName}/{CFBundleVersion}/  

Crée automatiquement le fichier dans le chemin !

! ftp.example.com/apps/Xebia-iOS/1.0/Xebia.ipa!

!

Idéale pour intégration dans une usine logicielle

Tableau comparatif

TestFlight HockeyApp HockeyKit KnappsackSupport SaaS SaaS self-hosted self-hosted

Récuperation auto infos app ✔ ✔ ✘ ✘Gestion builds ✔ ✔ ✘ ✔

Gestion utilisateurs ✔ ✔ ✘ ✔Crashes ✔ ✔ ✘ ✘

Statistiques d’installation ✔ ✔ ✔ ✔Feedbacks ✔ ✔ ✘ ✔

Checkpoints ✔ ✘ ✘ ✘Remote Logging ✔ ✘ ✘ ✘

Authentif. utilisateurs (in-app) ✘ ✔ ✘ ✘APIs ✘ ✔ ✘ ✔

WebHooks ✘ ✔ ✘ ✘iOS ✔ ✔ ✔ ✔

Android ✘ ✔ ✔ ✔Windows Phone ✘ ✔ ✘ ✘

Intégration Jenkins ✔ ✔ ✘ ✔Taille maximale build 800Mo 2Go ∞ ∞

Prix Gratuit ≥ 10$/mois Gratuit Gratuit

One more thing…

May 16th, Paris

Recommended