test flight et les outils de distribution continue par simone civetta de xebia
TRANSCRIPT
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