iPhone : Créez votre propre AppStore !

Depuis iOS4, Apple a beaucoup amélioré l’utilisation de son iPhone pour l’entreprise. La supervision de la flotte a été revue et de nombreuses autres améliorations ont été apportées pour aider les RSSI et le support de nos chères DSI rendant l’iPhone de plus en plus proche du BlackBerry.

Une avancée majeure réalisée par Apple avec l’iOS4 concerne la possibilité de déployer des applications Over-The-Air sans passer par l’AppStore.

En effet, il est désormais possible de créer son propre AppStore interne à votre entreprise pour proposer et installer des applications sur les iPhones / iPod Touch de vos collaborateurs.

Comment faire ? Pour qui ? Pour quoi ? Quelles sont les limites ? C’est ce que nous allons voir dans cet article.

Le constat

L’AppStore s’est imposé comme la plateforme de référence pour la diffusion d’applications pour smartphones. Ce modèle, parfaitement adapté à de la diffusion de masse vers le grand public, est cependant loin d’être idéal dans le cadre d’applications internes.

En effet, aucune entreprise ne veut exposer à ses concurrents (via l’AppStore) ce qu’elle réalise pour ses employés pour améliorer sa productivité ou sa qualité.

En réponse à cette problématique, Apple avait prévu depuis le lancement de l’AppStore un programme Entreprise (In House deployment) ouvert aux entreprises de plus de 500 employés. Ce programme permet la diffusion d’applications à destination d’un cercle restreint sans passer par l’AppStore. Pour les autres, il est possible, avec le programme standard, de diffuser ses applications dans une limite de 100 terminaux identifiés (AdHoc deployment).

Pour installer l’application sur les iPhones de vos collaborateurs il fallait envoyer des fichiers qui devaient ensuite être synchronisés avec l’iPhone via iTunes ou l’utilitaire de  configuration iPhone (iPCU). Or iTunes ne fait généralement pas bon ménage avec nos parcs informatiques (bloquages proxy, nécessite les droits d’installation, …), iPCU est réservé à un public averti et le tout nécessite d’avoir un ordinateur branché avec son iPhone. Au mieux l’installation est laborieuse, au pire impossible.

La solution

Avec iOS4 et le déploiement Over-The-Air, plus besoin d’un Mac ou PC pour installer les applications, plus besoin d’iTunes, vous pouvez tout faire depuis votre iPhone comme sur l’AppStore. Vous allez donc être capable de proposer à vos employés votre propre Store d’applications.

Ce déploiement concerne cependant uniquement vos propres applications et pas les applications diffusées par des tiers sur l’AppStore. Le déploiement Over-The-Air ne fonctionne que pour la publication AdHoc ou InHouse.

Si lors de vos développements vous avez voulu envoyer des versions beta à des testeurs, vous vous êtes probablement déjà retrouvé à devoir les aider par téléphone ou bien à les voir débarquer dans votre bureau. Tout ceci est fini, tout devient plus facile.

De quoi ai-je besoin ?

Pour pouvoir déployer Over-The-Air votre application il vous faut :

  • XCode en version 3.2.3
  • Votre code source
  • Le profil de distribution Ad Hoc ou In House
  • Un serveur Web pour héberger les fichiers
  • Un iPhone avec iOS4

Comment faire ?

Pour pouvoir distribuer votre application, il faut d’abord ouvrir votre projet avec XCode. Désignez la cible de compilation « Device » et la configuration adaptée.

Choix de la cible de compilation

Une fois cette cible désignée, il faut compiler et construire l’archive. Il suffit d’aller dans le menu « Build > Build and Archive ».

Compilation et création d'archive

Une fois l’archive construite, l’application Organizer se lance avec votre dernière archive. Sélectionnez la puis cliquez sur « Share Application »

Affichage des archives

Il vous faut alors choisir le profil qui va signer l’application. Choisissez soit le profil AdHoc soit le profil InHouse puis cliquez sur « Distribute for Enterprise »

Signature d'une archive

L’écran suivant apparait. Vous devez impérativement rentrer l’URL à partir de laquelle l’application sera distribuée. Cette URL doit être suffixée par le nom de l’application suivi de .ipa (cf exemple ci-dessous). Vous devez également remplir le nom de l’application dans le champ « Title ».

Informations de déploiement

Il ne vous reste plus qu’à enregistrer les fichiers sur votre disque dur en donnant le même nom que l’application.

Enregistrement des fichiers

Vous trouverez donc deux fichiers sur votre disque dur :

  • Un fichier .ipa : C’est le binaire de votre application
  • Un fichier .plist : C’est le descriptif de votre application qui va vous permettre de le faire télécharger par l’iPhone

Il vous reste une dernière étape : créer le fichier HTML

Ce fichier doit faire un lien vers le fichier PLIST pour permettre à l’application de s’installer mais il doit également proposer un lien vers le provisionning profile qui a servi à signer l’application et que les utilisateurs doivent installer préalablement à l’application. Vous devrez donc ajouter à ces deux fichiers le .mobileprovision

Voici un exemple de code HTML :

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">

La ligne 10 est particulièrement importante puisqu’elle donne l’ordre à l’iPhone de télécharger le fichier.
Il ne vous reste plus qu’à publier les 4 fichiers (ipa, mobileprovision, plist et html) sur le serveur web à l’adresse désignée dans les informations de déploiement et le tour est joué, vous avez une application ready for a Over-The-Air deployment !

Le site généré par ce code n’est pas des plus esthétique, vous pouvez télécharger un exemple plus élaboré en cliquant ici.

Illustration

Une fois que vous avez déployé l’application sur le serveur Web, il ne vous reste plus qu’à envoyer le lien vers la page HTML créée ci-dessus et de leur demander de télécharger les deux fichiers.

Voici l’illustration du processus d’installation de l’application :



 

EDIT : Le 13 juillet 2012

Depuis la publication de cet article, OCTO a développé et mis en service Appaloosa, une solution d’Enterprise App Store et de Mobile Application Management, qui permet à nos équipes, à nos clients mais également à tous ceux qui le souhaitent, de distribuer leurs applications privées over-the-air en reproduisant la même expérience utilisateur que les stores publics.

Retrouvez aussi notre infographie qui vous aide à mieux comprendre les différents certificates iOS.

 

19 commentaires sur “iPhone : Créez votre propre AppStore !”

  • J'allais justement poster un article sur ce sujet ;) C'est super pratique ! Un detail, le fichier mobileprovision est déjà inclus dans l'IPA. Donc pas besoin de le télécharger en plus (testé sans pb chez moi) PS : Coucou à Emilie C. chez vous ;)
  • Bonjour Samuel, Il n'y a effectivement pas besoin de mobileprovision car l'IPA le contient déjà. On le trouve d'ailleurs dans le répertoire payload/nom_app sous le joli nom de embedded.mobileprovision ! Merci pour ce retour, je vais corriger l'article. Cordialement JFG
  • Bonjour, En ayant respecter votre méthode (du moins je le crois ??) j'ai toujours un soucis... Sur mon iPhone 4 JB tout marche sans soucis et l'app s'installe (comme le dit Jean Francois pas besoin de télécharger le certificat, l'installation est automatique). Cependant sur un autre iPhone non JB quant à lui, impossible de l'installer. (lancement du téléchargement, et au moment de l'installation j'ai le petit message qui me rend fou " Impossible de télécharger "app" ". Cela pourrait-il être du au certificat ? Peut être que je ne copie pas le bon certificat? Comment savoir quel certificat copier ? Cdlt Sam
  • C'est effectivement probablement lié à votre certificat. Même si vous ne l'avez pas précisé, je suppose que votre iPhone non jailbreaké est en iOS4. Vous pouvez vérifier : - La version pour laquelle l'application est compilée (target) OS 4 ou 4.1, ... - Le certificat qui doit être un certificat Ad Hoc ou In House valide (vérifier la validité sur le site de provisioning). Il faut le vérifier dans les préférences (clique droit puis "Get Info") du projet et de la Target (section "Code signing") en vérifiant que la configuration choisie est bien "Distribution" ou "Release" et que lors du build and archive cette configuration est celle choisie. Cordialement JFG Si vous le souhaitez contactez-moi sur mon adresse OCTO : jfg AT octo POINT com ça sera un meilleur canal pour échanger.
  • bonjour, est-ce possible de faire fonctionner l'appstore "perso" avec une application qui a été crée sous flash CS5 ? le problème est que flash ne crée pas de fichier ".plist". Est-ce qu'il y a une méthode pour le crée manuellement ? thx fred
  • J' ai un certificat au format .mobileprovision ainsi qu' un fichier d' instal .ipa pour une appli servant notamment à recuperer mes mails de bureau direct sur mon Iphone toujours en V3. Question : mon certif arrive ce jour à expiration, et la personne qui a developpé l' appli a disparu.. Je voudrais donc modifier la date butoir du .mobileprovision, voire lui donner soit une date de créa à aujourd hui soit une date de 'fin' plus éloignée : est ce possible simplement pour qqun qui n y connait rien ?!!!! merci pour votre aide !!
  • @Tollirom : Est-ce que vous disposez du code source ? Si non votre seule solution est de reculer la date de votre iPhone :(. Si oui il faut régénérer un profil et re-compiler votre application avec. @Fred : Vous pouvez le créé manuellement en regardant un exemple de fichier dans les sample codes d'Apple. Si l'application fonctionne sur votre iPhone, vous pouvez le faire avec "l'AppStore Perso".
  • Bon après moultes péripéties et nettoyages des certificats j'ai réussi ! donc tout d'abord merci à vous. J'ai néanmoins 2 petites questions. Quelle est la procédure à suivre sur xcode v4? Il n'y a pas de build and archive sur ce dernier... Et aussi, pour envoyer une app qui serait compatible avec toutes les OS, comment dois je procéder? Dans le ios deployment target, si je laisse 4.1 et que j'essai d'installer sur un iPhone en 4.0, je fais face à un échec au moment de l'installation. Bien cordialement.
  • La procédure est de ne pas utiliser XCode 4 dans un contexte de projet devant aller sur l'AppStore prochainement tant que XCode est en version beta. Pour faire une application qui soit compatibles avec tous les OS il faut : 1 - Compiler avec le dernier SDK 2 - Régler la Target (iOS Deployment Target ou IPHONEOS_DEPLOYMENT_TARGET) dans les paramètres du projet et descendre jusqu'à la version minimale requise. Attention aux imports des bibliothèques spécifiques iOS4 sur iOS3. Cordialement Jean-François GRANG
  • @JFG Merci du tuyau j' ai contourné le pb en antériorisant la date de mon iphone, et pu réinstallé mon appli comme si de rien n'était pour "faire passer" 'l appli arrivée à échéance... sinon je ne disposais pas des codes sources seulement des fichiers .ipa et du certificat .mobileprovision Merci du tuyau tt marche désormais !!
  • Bonjour, N'ayant pas encore souscrit au compte développeur d'entreprise (étant donné que je n'en ai pas besoin pour moi, mais pour un client) je n'ai pas encore pu tester ce déploiement "over-the-air" Je me pose néanmoins quelques questions, concernant les applications qu’on peut donc déployer au niveau de cet « AppStore privé », le fait de ne pas avoir à passer par une validation Apple permet-il d’utiliser des APIs qui ne sont pas tolérées au niveau de l’AppStore ? dans ce cas, ça serait vraiment pratique et particulièrement intéressant. Merci d’avance de vos réponses
  • Sébastien, Pas besoin de compte In House, cela fonctionne aussi avec un certificat Ad Hoc (disponible avec une souscription standard dans distribution). Apple ne vérifiant pas l'application on peut y faire ce que l'on veut. Il faut cependant s'assurer que l'application ne sera diffusée qu'aux seuls employés de votre entreprise.
  • Hmmmmm ..... qui a copier qui ? https://blog.octo.com/iphone-creez-votre-propre-appstore/
  • pardon : http://www.iphonedsi.fr/deploiement-dapplications-sans-fil-avec-ios4/
  • Bonjour "Salut", Personne n'a copié personne. C'est le même auteur, le même article diffusé à 2 communautés différentes. Cordialement Jean-François GRANG
  • Bonjour, Savez-vous si avec un compte In House il est possible de déployer une application pour les clients d'une entreprise et non pas pour les employés ? Exemple, un Ipad serait mis à disposition des clients dans des magasins. Si ce n'est pas possible, quelle est l'autre alternative ? Il faut forcément diffuser l'appli sur l'App Store ? Merci beaucoup.
  • Appaloosa permet de faire beaucoup plus simplement désormais : http://www.appaloosa-store.com/
  • Bonjour, en appliquant cette méthode, est ce que la mise à jours de l'application s'effectue automatiquement pour tous les appareils ou non?
  • Bonjour, en appliquant cette méthode, est ce que la mise à jour de l'application se fera automatiquement pour tous les appareils apple possédant l'application??
    1. Laisser un commentaire

      Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


      Ce formulaire est protégé par Google Recaptcha