La compréhension et l’utilisation des certificats et des profils constitue une phase primordiale dans le domaine de la mise à disposition d’applications, que cela concerne les développeurs dans les phases de tests ou les entreprises qui proposent le téléchargement d’applications internes.
Force est de constater qu’il n’est pas simple de s’y retrouver. Petit tour d’horizon et explications :
Il convient tout d’abord de rappeler les différents programmes développeurs existants chez Apple ;
- iOS developper program (individuel et entreprise), qui permet de tester ses applications sur les terminaux de l’entreprise (en mode ad-hoc), et de les proposer sur l’AppStore. La license coûte 99$/an.
- iOS developper enterprise program qui permet de tester ses applications sur les terminaux comme la version de base, mais elle permet aussi de déployer des applications « in house ». Ce type de programme est destiné aux sociétés voulant distribuer leurs applications en interne, en créant une sorte d’ « AppStore d’entreprise ». Ce programme ne permet pas de publier des applications sur l’AppStore. La License coûte 299$/an.
Tous les détails se trouvent sur le site d’Apple, ici : http://developer.apple.com/programs/ios/develop.html

Pensez organisation !
Une fois que vous avez choisi le programme qui vous convient le mieux, une vraie réflexion reste encore à mener.
- Combien de personnes seront en charge du développement ?
- Combien y a t-il de chefs de projet ?
- Qui sera en charge de la gestion de l’ensemble des projets et de la gestion du compte Apple ?
Cette liste de questions vous permettra dans un premier temps de déterminer le rôle à affecter à chacun des collaborateurs : soyez minutieux sur cet aspect.
Le lexique Apple concernant la hiérarchie à mettre en place dans le cadre du développement et du déploiement d’un programme est le suivant :

En terme d’organisation, il conviendrait d’arriver à établir la hiérarchie globale suivante :

Si votre réflexion concernant l’organisation à mettre sur pied n’est pas bien menée, le développement d’application relèvera à coup sûr du parcours du combattant.
La personne qui jouera le rôle du Team Agent convient d’être choisie avec grand soin. Il ne s’agit pas forcément du CEO de l’entreprise, ni du directeur technique. Il doit être omniprésent, et joue un rôle primordial. C’est le seul qui peut déployer une application en mode ad-hoc (pour des tests grandeurs nature), en in-house, ou encore sur l’AppStore.
Il n’y a pas un nombre limité de Team Admin ou de Team Member, mais il ne peut y avoir qu’un seul Team Agent.
Les certificats
Chaque développeur, pour pouvoir tester son application sur un terminal, doit créer un certificat de développement en utilisant l’utilitaire « trousseau d’accès ». Cela lui permettra de créer une clé privée qui lui permettra de signer son application au moment de la compilation.
Pour tester l’application en ad-hoc, en in-house, ou pour la publier sur l’AppStore, c’est le Team Agent qui devra créer un certificat de distribution.
Les certificats sont valides un an.
Par la suite, pour chaque application qui sera créée, il faudra y adjoindre une App ID (seul le team agent peut le faire) mais aussi le profil correspondant (développement, distribution ad-hoc, in house, AppStore).
Seul le Team Agent peut créer des profils de distribution.
Les team members ne peuvent que télécharger les profils.
Il est important de noter également qu’il existe différents types d’applications, pour différents usages : Wildcard ou Explicit.
Wildcard : Les applications wildcard sont utilisées pour des phases de tests, une même App ID pouvant être utilisé par plusieurs pour tester diverses applications, simplifiant ainsi la phase de gestion auprès d’Apple. Certaines fonctionnalités ne sont pas disponibles en utilisant ce type d’application.
Explicit : reprend toutes les fonctionnalités de l’iOS (possibilité de push, gamecenter . . .) et n’est valable que pour UNE seule application. Il faut utiliser ce type d’application pour soumettre son application auprès d’Apple.
On voit donc bien que le choix du type d’application est important et permet d’optimiser toute la chaine de développement.
Les profils de provisionnement
Un profil de provisionnement constitue une collection d’entités digitales regroupant de manière unique, les développeurs et les terminaux à une équipe de développement iPhone autorisée, et permet ainsi d’utiliser le terminal pour les tests.
Ce profil doit être installé sur chaque terminal de test.
Chaque profil contient :
- un panel de certificat de développement,
- Les UDIDs des terminaux autorisés (identifiant unique d’un terminal),
- et un App ID
Il est valide pour 90 jours.
Les terminaux enregistrés au sein du profil d’approvisionnement ne peuvent être utilisés que sur les machines pour lesquelles le certificat utilisé est compris dans le profil.
Pour la distribution via l’AppStore il faut créer un profil différent, de distribution App Store.
Pour la distribution en Ad-Hoc il faut créer un profil de distribution Ad Hoc.
Les profils de distribution sont valides 1 an.
Dans le cas d’un déploiement d’application au sein d’une entreprise, il faut avoir en permanence une vision globale de la durée de validité des profils. En effet, une application ne se lancera plus une fois le profil expiré.
Il en va de même pour les certificats de développement et de distribution.
Pour récapituler, nous vous proposons ce schéma qui décrit toutes les étapes nécessaires à la distribution d’une application, que ce soit en mode ad-hoc ou sur l’AppStore :

En rouge : tache affectée à l’Agent En orange : tache affectée à l’Agent ou à l’Admin En vert : tache affectée au Member
Conclusion :
Monter une équipe de développement, que ce soit pour développer des applications en interne, ou encore pour les publier sur l’AppStore nécessite une réelle réflexion en amont sur l’organisation des équipes de développement. Comme nous pouvons le voir dans le schéma résumé précédent, les étapes nécessitant l’intervention du Team Agent (en rouge) sont nombreuses et essentielles.
Il faut y rajouter le contrôle permanent qui doit s’appliquer sur les applications déployées, l’état général des certificats et du compte Apple.
Obtenir une vision claire de cette organisation n’est pas une mince affaire et peut même s’apparenter à un travail d’introspection pour une entreprise : mon organisation est-elle optimale et opérationnelle ? Mes process sont-il tous clairement identifiés, définis et attribués aux personnes compétentes ? Que ce passe-t’il si une personne jouant un rôle clé dans le process n’est pas présente dans l’entreprise (congés, maladie etc…) ?
Toutes ces question doivent être posées car elles constituent un pré-requis incontournable à un projet de déploiement d’applications.
Nous pouvons vous assister dans ce travail de définition de l’organisation et de ses process en vue du déploiement d’applications. N’hésitez pas à nous contacter.