Déploiement d’application iPhone

29 June 2010 par freder_r

Cet article présente les différentes méthodes possibles qui sont mises à disposition par Apple pour déployer une application iPhone. Il y sera détaillé comment déployer une application en phase de test ou de déploiement et comment utiliser les outils nécessaires à ces opérations.

Présentation du portail développement

Le portail de développement  est un site qui permet d’avoir accès à la documentation IPhone et de télécharger les outils et les SDK mis à disposition par Apple. Chacun peut y accéder gratuitement en créant un compte développeur sur le site. Néanmoins, même si cette souscription est accessible à tous, un Mac muni de Mac OS X   et d’un processeur Intel est nécessaire pour l’installation et l’utilisation des outils d’Apple. Cette version gratuite du portail se résume à une grande base de connaissances et les outils mis à disposition permettent de développer et de tester ses applications sur le simulateur. Pour pouvoir tester son programme sur un iPhone, le développeur doit avoir souscrit au programme de développement d’Apple . L’inscription à ce programme est payante et nécessite au préalable la création d’un compte développeur. Ce programme de développement enrichit le portail de plusieurs fonctionnalités.

Il existe trois déclinaisons du programme de développement :

  • la version standard individuelle (99 USD   = 66 €),
  • la version standard entreprise (99 USD = 66 €),
  • la version entreprise (299 USD = 199€).

La version standard du portail permet de générer des certificats de développement et de distribution d’application, de distribuer son application à un maximum de 100 testeurs (distribution ad hoc) ou sur l’AppStore en soumettant l’application à la validation par Apple. Cette souscription donne également accès à un forum de discussion et au support en ligne d’Apple.

La version standard entreprise permet, en plus des possibilités citées ci-dessus, de gérer une équipe de développement (ajout de droit d’accès au portail à d’autres comptes développeur) et de distribuer l’application sous le nom de l’entreprise.

La version standard individuelle permet l’accès à un seul développeur et de distribuer l’application sous le nom de la personne ayant souscrit au programme.

La version entreprise de ce portail offre les mêmes fonctionnalités que la version standard entreprise. La seule différence est le remplacement de la publication d’application sur l’AppStore par un mode de distribution dit « in-house » qui permet de déployer une application sur un nombre illimité d’iPhone. Pour souscrire à cette version, l’entreprise doit avoir un minimum de 500 employés et posséder un numéro de DUNS . Ce numéro peut être obtenu gratuitement à l’adresse suivante : http://smallbusiness.dnb.com/establish-your-business/12334338-1.html.

Avant de continuer, il est important de faire la distinction entre un certificat et un profil d’approvisionnement. Les certificats sont stockés sur l’ordinateur et servent à identifier un développeur. Les profils d’approvisionnement sont stockés sur l’iPhone et permettent de lier un ou plusieurs certificats, des périphériques et un identifiant d’application pour restreindre et sécuriser la diffusion d’application. Il existe deux types de certificats et deux types de profils d’approvisionnement :

  • Un certificat de développement identifie un développeur.
  • Le certificat de distribution identifie le compte de développement.
  • Un profil d’approvisionnement de développement permet d’autoriser un ou plusieurs développeurs à déployer une application sur des iPhone spécifiques.
  • Un profil d’approvisionnement de déploiement permet de distribuer une application à plus grande échelle.

ITunes et l’utilitaire de configuration iPhone

ITunes est un logiciel d’Apple permettant notamment de gérer des bibliothèques de musique et de synchroniser des périphériques Apple avec son ordinateur. Dans le cas de déploiements d’applications ad hoc  ou  in-house , ITunes permet de transférer et de gérer des applications et des certificats sur iPhone.

L’utilitaire de configuration IPhone  est un outil inclu dans le SDK de développement iPhone qui permet de gérer des restrictions sur les périphériques en y installant des profils de configuration. Ces profils de configuration permettent entre autre d’imposer des règles sur les mots de passe, de configurer des comptes Exchange, des connexions wifi  ou VPN  (se référer à la section « 3.Sécurisation des terminaux » pour plus d’information sur cet outil).

Cet utilitaire permet comme ITunes de gérer les applications et certificats installés sur un iPhone.

Développement

Cette section détaille les différentes étapes  pour gérer une équipe de développement, générer des certificats de développement et des profils de déploiement. Ces étapes sont obligatoires pour développer, tester sur iPhone  et distribuer une application. Ces étapes effectuent le cycle suivant :

Formation d’équipe :

  • Une équipe de développement est créée.
  • Des certificats de développement sont générés pour chaque développeur.
  • Des périphériques sont enregistrés sur le portail.

Développement :

  • Un identifiant unique est créé pour chaque application à développer.
  • Un profil d’approvisionnement de développement, liant des développeurs, un identifiant d’application et des périphériques, est créé pour effectuer des tests.

Déploiement :

  • Un certificat de distribution est créé pour signer l’application (chaque compte ne possède qu’un seul certificat de distribution).
  • Un profil d’approvisionnement de distribution est créé pour déployer l’application.

Ajout de membres

L’administrateur du compte de développement a la possibilité  d’inviter des personnes  dans son équipe de développement. Cette invitation, si elle est acceptée, permet à  d’autres développeurs d’avoir accès aux ressources du portail de développement. L’administrateur peut inviter des développeurs en suivant les procédures suivantes :

  • Aller dans la section «team» du menu principal du portail,
  • Sélectionner l’onglet «manage»,
  • Cliquer sur le bouton «add member»,
  • Un formulaire apparaît alors dans lequel l’administrateur doit entrer les noms, prénoms et adresses mail auxquelles les invitations doivent être envoyées. Une option permet de définir si, au terme de cette invitation, le membre aura un statut de membre ou d’administrateur.

Un administrateur peut à tout moment annuler son invitation ou rejeter un membre du groupe  de travail. La personne devant joindre le groupe recevra un email à l’adresse spécifiée dans le formulaire rempli par l’administrateur. À la réception de ce mail, un lien est alors indiqué avec un code pour confirmer l’inscription. Pour faire cette confirmation, l’utilisateur doit posséder un compte de développement IPhone qu’il utilisera pour s’authentifier.

Il existe trois statuts sur le portail de développement : agent, administrateur et membre.

L’agent est la personne qui a souscrit au compte de développement et qui a tous les droits.

Les administrateurs sont  des personnes invitées qui possèdent une partie des droits de l’agent.

Les membres sont eux aussi invités, mais possèdent des droits restreints.

Voici un tableau récapitulant les différents droits et actions possibles pour chaque statut :

Génération de certificat de développement

Les certificats de développement servent à identifier un développeur, à restreindre et à sécuriser les possibilités de déploiement en phase de développement .

Création de la demande

Pour obtenir un certificat de développement, chaque développeur doit créer et soumettre une demande de certificat auprès de ses administrateurs.  La procédure suivante indique la démarche à suivre pour créer cette demande :

  • Ouvrir le « trousseau d’accès  » sous Mac OS (avec Spotlight  par exemple),
  • Dans le menu « trousseau d’accès », choisir « assistant de certification »,
  • Puis « demander un certificat à une autorité de certificat ».

Dans la fenêtre qui s’ouvre, il faut spécifier l’adresse mail et le nom de l’utilisateur qui demande le certificat, choisir les options « enregistrer sur le disque » et « me laisser indiquer les données sur la bi-clé ».

Lors de la prochaine étape, les informations sur la dimension de clé (2048bit) et d’algorithme (RSA) doivent être choisies. Après validation de cette étape, la demande de certificat est générée sur le bureau de l’ordinateur.

Soumission de la demande et installation

La soumission de la demande de certificat s’effectue par le portail de développement. Les étapes suivantes en décrivent le déroulement :

  • Aller dans le menu « Certificats » du portail,
  • Choisir l’onglet « Développement »,
  • Cliquer sur le bouton « request a certificate »,
  • Dans le formulaire, spécifier l’emplacement du fichier de demande de certification (celui créé sur le bureau),
  • Cliquer sur envoyer.

Si la clé du certificat n’a pas une longueur de 2048 bits, la demande de certificat sera rejetée et le message « Invalid Certificate » sera affiché. Si elle est acceptée, le statut de cette demande sera « en attente » et un email de notification sera envoyé aux administrateurs.

Une fois qu’un administrateur aura validé cette demande, le développeur pourra télécharger son certificat de développement sur le portail d’Apple dans le menu de certificat. L’installation se fait en double-cliquant dessus. Sous Mac Os, une fenêtre apparaîtra demandant l’acceptation d’ajouter le certificat au trousseau de clé, cliquer sur « Ok ».

Identifiant d’application

L’identifiant d’application est un identifiant unique qui sert à l’OS pour communiquer avec des périphériques externes et à Apple pour gérer son système de push ainsi que l’activation de la fonctionnalité d’achat au sein de l’application. Pour créer un identifiant d’application, il faut aller dans le menu « AppID » sur le portail de développement, cliquer que le bouton « new app ID »,  entrer une description de l’application, choisir l’option « generate new bundle seed », entrer un identifiant de package  et valider le formulaire.

Enregistrement de périphérique

L’enregistrement de périphérique permet de limiter la distribution d’application à certains appareils. Il existe deux manières d’enregistrer son application sur le portail : en entrant manuellement les identifiants des périphériques ou en créant un fichier contenant une liste d’identifiants.

Pour l’enregistrement manuel, il faut ouvrir ITunes ou l’utilitaire de configuration Iphone et sélectionner son périphérique dans le menu. Une description du périphérique connecté apparaît alors dans la fenêtre principale avec notamment son nom, sa capacité et son identifiant.

Utilitaire de configuration iPhone

ITunes

Remarque : sous ITunes, l’identifiant n’apparaît pas automatiquement. À la place de l’identifiant présent sur la capture d’écran ci-dessus, l’information « Numéro de série » sera affichée. Pour obtenir l’identifiant, il faut cliquer sur la zone de texte au niveau de la ligne «Numéro de série».

En utilisant l’utilitaire de configuration iPhone sous Mac OS, il est possible d’effectuer un copier/coller de l’identifiant. Dans tous les autres cas, une saisie manuelle sera obligatoire.

Pour ajouter un iPhone au portail de développement, il faut copier cet identifiant  et le nom du périphérique dans le formulaire du portail se trouvant dans le menu « devices », onglet « manage » et en cliquant sur le bouton « add devices ».

Pour enregistrer plusieurs périphériques en même temps, il faut utiliser l’utilitaire de configuration IPhone, sélectionner plusieurs périphériques, cliquer sur le bouton « exporter » et enregistrer le fichier.  Dans la même section du portail de développement se trouve le bouton « upload devices ». Pour enregistrer les périphériques, il suffit d’indiquer où se trouve le fichier d’exportation.

Profil d’approvisionnement de développement

Pour que le développeur puisse déployer son application sur un périphérique, il doit posséder un profil d’approvisionnement de développement qui sera lié à son certificat de développement et à une application spécifique. Ce certificat de développement doit être créé par un administrateur à partir du portail de développement:

  • Dans le menu « provisioning »,
  • Choisir l’onglet « development »,
  • Remplir le champ du nom de profil et indiquer les développeurs et les périphériques qui sont autorisés à installer l’application. Il faut également sélectionner un identifiant d’application créé au préalable,
  • Valider la création.

Le profil d’approvisionnement sera accessible dans le menu  « provisioning », il faut alors le télécharger et l’installer (en double-cliquant dessus ou en le déposant sur l’icône XCode du dock ).

L’application à déployer doit avoir la même signature que celle du certificat. Dans la liste des propriétés du projet (fichier .plist), il faut éditer la ligne « bundle identifier » et mettre le même identifiant d’application qui a été sélectionné pour le certificat de développement (ex : fr.c2s.appname).

Déploiement

Il existe trois manières de déployer une application iPhone à large échelle:

  • l’App Store (diffusion d’application gratuite ou payante),
  • le déploiement ad hoc,
  • le déploiement d'entreprise.

Le déploiement ad hoc est une méthode de distribution limitée à 100 périphériques. Ce type de déploiement a plus une vocation de test grandeur nature qu’un véritable déploiement.

Le déploiement par l’App Store requiert une validation de l’application par Apple pour être disponible.

Quant au déploiement d'entreprise, il permet de distribuer une application sur un nombre illimité de périphériques en distribuant l’application et  un profil d’approvisionnement aux utilisateurs.

App Store

Le déploiement par l’App Store permet de publier de façon gratuite ou payante des applications. Il est nécessaire d’avoir souscrit à l’offre standard du programme de développement pour avoir accès à cette option. Avant de soumettre une application à la validation Apple, il est recommandé de lire et de vérifier si l’application suit les indications du guide d’interface  et si elle est conforme aux conditions d’acceptation du portail de développement .

La gestion des applications publiées sur l’App Store s’effectue par un site web nommé « ITunes Connect ». Ce site permet de gérer une équipe de support qui peut se diviser en quatre statuts : Administrateur, responsable légal, responsable finance et technicien.

Pour soumettre une application il faut remplir un formulaire (nom, icône, catégorie, contacts, etc.)    et l’uploader. Une fois l’application soumise, une période de validation de l’application par Apple commence. Lorsqu’elle s’achève, l’application peut soit être acceptée et publiée sur l’App Store,  soit être refusée pour non respect des conditions d’ergonomie, présence de failles de sécurité, etc.

Déploiement ad hoc

La méthode de déploiement ad hoc permet à une équipe de développement de distribuer des applications sur un maximum de 100 périphériques afin de pouvoir la tester dans les conditions d’utilisation finales.

Pour utiliser le déploiement ad hoc, l’administrateur du portail de développement doit créer un certificat de distribution :

  • Dans le menu « Certificates » du portail,
  • Cliquer sur l’onglet « distribution »,
  • Cliquer sur le bouton « request certificate »,
  • Il est alors demandé d’indiquer où se trouve la demande de certificat. Pour savoir comment générer cette demande, il faut se reporter aux indications de la section «2.1.2.1 Création de la demande» (il est possible d’utiliser plusieurs fois la même demande d’autorisation de certificat si elle a déjà été créée).

Une fois le certificat créé, téléchargé et installé, il faut créer un profil d’approvisionnement de distribution :

  • Dans le menu « Provisioning »,
  • Cliquer sur l’onglet « distribution »,
  • Cliquer sur le bouton « new profile »,
  • Remplir le formulaire qui est automatiquement signé avec le certificat de distribution,
  • Télécharger et installer le profil de déploiement.

L’application n’est pas encore prête pour la distribution. Pour la déployer, il faut modifier la propriété « get-task-allow », puis compiler l’application avec le profil. La propriété en question sert au débuggeur ou à d’autres programmes pour suivre l’évolution de l’application. Il faut créer un nouvel « entitlement » (créer un nouveau fichier dans XCode, sélectionner « code signing » dans le menu)    et éditer la propriété « get-task-allow » à la valeur False.

Il faut ensuite ajouter cette propriété pour la compilation en allant dans le menu cible du projet,    puis dans l’onglet « build », il faut éditer la ligne  « Code Signing Entitlement » avec le nom du fichier précédemment créé en incluant son extension.

Au terme de cette compilation, un fichier .app sera créé sur le mac . Pour distribuer l’application, il faut fournir aux utilisateurs le profil d’approvisionnement de l’application et une archive contenant le « fichier » .app du projet. L’utilisateur devra passer par ITunes pour installer  le profil et le programme, puis se synchroniser avec son périphérique.

Lorsque l’utilisateur dépose le dossier .app dans ITunes, le logiciel va créer le fichier .ipa correspondant pour l’installation.

Déploiement d’entreprise

Le déploiement d’entreprise est sensiblement le même que le déploiement ad hoc à la différence que le profil de distribution est remplacé par un profil d’approvisionnement d’entreprise et qu’il n’existe pas de limitation du nombre de périphériques. L’enregistrement des périphériques des utilisateurs n’est plus nécessaire pour la génération du profil de déploiement.

Sécurisation des terminaux

Profil de configuration et Exchange Server

Les profils de configuration permettent d’imposer des restrictions d’utilisations sur un iPhone et de configurer des accès à des réseaux, des comptes mail ou des comptes Exchange. Ils sont créés grâce à l’utilitaire de configuration IPhone et peuvent être installés directement à partir de l’iPhone par consultation de mail (profil en pièce jointe) ou par un site web (accessible par le navigateur Safari). Ils peuvent également être installés par le biais d’un ordinateur grâce à l’utilitaire de configuration iPhone et ITunes.

Pour les parties utilisant des fonctionnalités Exchange Server, se reporter à la documentation de Microsoft pour les configurer.

Les restrictions concernent notamment la politique de gestion du mot de passe de déverrouillage     de l’iPhone sur lequel il est possible d’ajouter des règles de contrôle de complexité (longueur minimum, présence et nombre de caractères spéciaux ou alphanumérique, etc.), de durée de validité, de réutilisation ou de blocage automatique. Concernant le blocage de l’iPhone, par défaut après six tentatives échouées de déverrouillage, le système impose un délai qui augmente progressivement entre chaque nouvelle tentative. Au bout de la onzième tentative, l’iPhone se réinitialise automatiquement, entraînant la perte de toutes les informations qu’il contient. Il est possible de définir le nombre de tentatives pour que l’iPhone se réinitialise automatiquement.

Ces règles peuvent être configurées sur l’iPhone de deux façons : par l’installation d’un profil de configuration ou par une gestion via « Exchange Active Sync Policies » si l’iPhone est configuré pour accéder à un compte Microsoft Exchange. L’avantage de passer par la configuration Exchange est qu’elle est dynamiquement mise à jour grâce à sa connexion au compte.

Les profils de configuration permettent de configurer rapidement un iPhone pour se connecter à un réseau wifi ou à un VPN. Il est en effet possible de régler des paramètres comme le mot de passe, le type de clé utilisé ou le passage par un proxy. Un tel dispositif permet d’offrir à un utilisateur peu expérimenté un outil de travail prêt à l’emploi avec un minimum de manipulation.

Si certaines informations sont manquantes lors de la configuration, par exemple un identifiant et un mot de passe propre à chaque utilisateur, elles lui seront demandées ultérieurement.

Si ces réseaux utilisent des certificats d’authentifications, il faudra les ajouter dans le profil par l’utilitaire de configuration (section « référence »).

Les profils permettent d’ailleurs de configurer l’accès à un serveur SCEP . L’utilisation d’un tel serveur sert à automatiser le déploiement de certificats de manière sécurisé.

Il est également  possible de limiter l’utilisation de certaines fonctionnalités ou programmes sur l’iPhone comme l’emploi du navigateur Safari, de l’application YouTube, l’accès à ITunes Music Store, l’utilisation de l’appareil photo, la possibilité de faire des captures d’écran ou encore l’installation d’applications par ITunes ou l’AppStore.

Ces profils permettent également de configurer l’accès à un compte Exchange (un seul compte  peut être utilisé par iPhone). Il est possible de créer un profil pour chaque utilisateur en configurant tous les champs demandés ou de créer un profil général contenant uniquement l’adresse de l’hôte, les données manquantes seront demandées ultérieurement à l’utilisateur. Par défaut, Exchange synchronise les contacts, le calendrier et les emails. L’utilisateur peut configurer le comportement de cette synchronisation à partir de son iPhone.

L’iPhone possède une fonctionnalité permettant de le réinitialiser avec ses paramètres d’usine, cette action entraîne une perte de toutes les données présentes sur le périphérique. Cette fonction peut être utilisée manuellement par l’utilisateur, mais si l’iPhone est configuré pour accéder à un compte Exchange, il est possible d’effectuer cette action à distance.

Cette réinitialisation peut être utilisée par Exchange Server 2007 grâce aux outils « Exchange Management Console », « Outlook Web Access » et « Exchange Active Sync Mobile Administration Tool ». Avec Exchange Server 2003, seul « Exchange Active Sync Mobile Administration Tool » peut être utilisé.

Renouvellement de profil d’approvisionnement

Les profils d’approvisionnement de distribution ont une durée de validité d’un an à partir du jour de leur création. Pour continuer d’utiliser les applications signées avec ces certificats, il convient      de les régénérer. La procédure pour régénérer  un profil d’approvisionnement est la suivante :

  • Révoquer le certificat de distribution,
  • Créer un nouveau certificat de distribution,
  • Editer le profil d’approvisionnement devenu invalide à cause de la révocation de son certificat de distribution ou en créer un nouveau,
  • Distribuer le nouveau certificat aux utilisateurs.

Cette procédure est disponible sur le forum développeur d’Apple et il semblerait que certains ont eu quelques difficultés avec  ces renouvellements. En effet, leur profil d’approvisionnement ayant expiré, ces administrateurs ne pouvaient pas l’éditer, ce qui les obligeaient donc à recréer tous les certificats, recompiler leur applications et les redistribuer aux utilisateurs.

Conclusion

Cet article a passé en revue les différentes méthodes possibles pour le déploiement d'applications sur iPhone. L'ensemble de ces méthodes de déploiement est parfaitement adapté à l'utilisation qu'un développeur d'application peut en faire grâce à la gestion d'équipe et aux méthodes de tests qui sont proposées par Apple.

Apple a tenté de s'ouvrir au monde des entreprises en intégrant dans ses services un mode de déploiement spécifiques qui, malgré la possibilité de déployer une application sur un nombre illimité de périphérique, reste inadaptée par rapport aux contraintes existantes dans ce milieu. Pour un déploiement d'applications iPhone en entreprise, il existe actuellement deux solutions:

  • soit les administrateurs ont un contrôle total sur la flotte d'iPhone de leur entreprises et doivent eux même installer à la main leurs applications sur chaque iPhone,
  • soit ils délèguent cette tâche aux utilisateurs qui doivent alors installer ces applications depuis leur poste de travail.
  • La deuxième option implique que tous les postes de travail des employés sont munis du logiciel iTunes, chose qui n'est pas toujours acceptable aux vues des possibilités d'utilisations de ce logiciel (synchronisation de musique, photos, vidéo, appstore, etc). Malgré les efforts d'Apple dans ce secteur, ces solutions sont encore bien trop contraignantes pour être utilisées à grande échelle au sein des entreprises. Apple reste maître de ses stratégies de développement et nul ne doute que le secteur juteux de l'entreprise peut encore fortement intéresser la société californienne.

Tags: , , , , , , , , , , , ,

4 commentaires pour “Déploiement d’application iPhone”

  1. Fabrice Gouin dit :

    Excellent article, merci !

  2. iMouss dit :

    Super l’article !
    J’ai trouvé autre chose ici –> http://www.iphonedsi.fr/deploiement-dapplications-sans-fil-avec-ios4/
    ++

  3. Xela dit :

    Merci pour cet article !

    En revanche ce passage me gène : “l’entreprise doit avoir un minimum de 500 employés et posséder un numéro de DUNS”.
    Je n’ai vu nulle part ce minimum d’employés, le chiffre 500 correspond au nombre d’utilisateur au Maximum d’une application.
    Par rapport au numéro DUNS, un simple numéro SIRET ne suffit-il pas ?

  4. JarJar dit :

    Là je dit “chapeau” pour ce superbe article!

    Après plusieurs heures de recherches infructueuses sur internet, je suis ravi d’être tombé sur cette page!

    Merci beaucoup!

Laisser un commentaire


− 6 = one