Si vous cherchez à distribuer votre application privée à un certain nombre de personnes, qu’ils soient des particuliers ou des clients, vous serez amenés à devoir vous affranchir de l’app store. Heureusement, il existe une méthode pour cela.
Ce petit post vous montrera comment signer votre application et la déployer afin de l’installer à travers un site web pour finalement la lancer sur vos appareils.
IPA: IPhone Application, il s’agit du package de l’application générée qui sera installé sur vos appareils.
UDID: Unique Device Identifier, c’est un identifiant unique qui représente votre appareil.
Avant de générer votre IPA, nous allons enregistrer l’UDID de votre appareil sur votre compte developpeur. Cela permettra de signer votre application afin qu’elle puisse se lancer sur votre iPhone/iPad.
Ouvrez la fenêtre d’ajout (bouton +)
Sélectionnez dans la rubrique platform: “iOS, tvOS, watchOS” Entrez un nom pour votre appareil (ex: “iPhone 6s”) ainsi que l’UDID de votre appareil puis cliquez sur « Continue »
Avant de générer une nouvelle IPA j’ai dû réimporter les profils de développement, pour cela ouvrez xcode puis accédez aux paramètres (⌘ + ,), onglet “Accounts” puis sélectionnez “Download Manual Profiles” cela ne devrait pas prendre plus d’une dizaine de secondes le temps qu’XCode récupère l’intégralité de vos profils depuis les serveurs Apple.
Vous pouvez désormais fermer la fenêtre et charger votre projet
Afin de générer une IPA pour le déploiement, commencez par sélectionner « Any iOS Device » dans le menu destination de votre application (Product > Destination > Any iOS Device
)
puis générez une archive de votre application (Product > Archive
). Cela créera un build prêt à être déployé (que ça soit de manière publique via l’app store ou privée). Une fois la compilation terminée une fenêtre (Organizer) s’ouvrira avec la liste de vos archives, la dernière construite sera sélectionnée. Cliquez sur le bouton à droite “Distribute App”
vous pourrez ensuite sélectionner “Ad Hoc” et non “App Store” (défaut) puis suivant.
Note : il est possible de sélectionner Entreprise si vous avez un compte entreprise de ce fait passant outre l’étape de l’UDID (voir partie précédente) mais n’ayant pas de compte entreprise pour tester je n’élaborerais pas plus.
sur la prochaine page vous aurez la possibilité de choisir ou non “App Thinning” qui vous permet d’optimiser la taille de votre IPA. Cette option étant facultative, elle reste à votre discretion.
Vous devrez cocher les deux options suivantes :
La première option permet de compiler le bitcode de votre app de telle manière à ce qu’il soit identique à une distribution app-store. Cela est recommandé. La seconde nous intéresse, car elle va générer des fichiers qui nous serons utile afin de déployer votre application sur votre site web.
Sur la page suivante, quelques métadonnées vous seront demandées, le nom de votre app (déjà rempli, inutile de s’en occuper), l’url ou votre IPA sera localisé ainsi que deux images (57 par 57 pixels ainsi que 512 par 512 pixels). l’outil d’export vous demande de renseigner toutes ces URL mais vous n’etes pas obligé de fournir les images par la suite. Notez que vous devrez obligatoirement avoir un certificat SSL pour accéder à la page en HTTPs faute de quoi votre appareil refusera d’installer l’application pour des raisons de sécurité.
La prochaine étape concernera la signature de votre application. Vous pouvez laisser “Automatically manage signing” afin qu’XCode s’en occupe à votre place.
à l’issue de cette dernière étape, XCode va compiler, signer et packager votre application. Cette procedure peux prendre un certain temps selon la taille et la complexité de votre application. Puis vous pourrez tout simplement appuyer sur le bouton export afin de sauvegarder les binaires et metadata afin de les déployer.
dans le dossier d’export nous retrouverons :
manifest.plist
)Nous aurons besoin de ces deux fichiers pour le déploiement sur le site web.
Il existe une méthode simple pour vérifier que votre appareil est autorisé à lancer l’application que vous venez de générer.
En effet l’archive IPA n’est autre qu’un fichier ZIP qui contient les binaires de votre application et les metadata.
faites une copie de votre app et remplacez son extension par .zip, vous pourrez désormais extraire son contenu.
En accédant à l’archive, vous trouverez un dossier Payload puis “votre_app.app” dans ce dossier.
“votre_app.app” est un dossier qui contient le contenu de votre application. Accédez-y et vous devriez trouver un fichier “embedded.mobileprovision”
en prévisualisant ce fichier avec Quicklook sur votre mac (espace en sélectionant le fichier) vous aurez un résumé de la signature de votre application. Dans la section “Provisioned Devices” vous pourrez voir les devices autorisés à lancer votre application et devriez retrouver l’UDID de l’appareil que vous venez d’enregistrer.
Lors de la génération de l’archive, vous avez mentionné une URL pour votre IPA. Uploadez l’IPA que vous avez générée à cet endroit via votre méthode de transfert préférée ainsi que votre fichier manifest.plist
.
sur votre site web rajoutez un lien vers le fichier manifest.plist
(non l’IPA !) de cette manière :
<a href='itms-services://?action=download-manifest&url=https://demo.adinunno.fr/manifest.plist'>Demo</a>
n’oubliez pas de remplacer l’URL par le chemin de votre manifest.plist
.
Il est important de noter que vous devez utiliser une URL itms-services
et non une url classique, et ce, malgré que vous ne passez pas par iTunes Connect ou l’App Store cela indiquera à votre iPhone qu’il doit installer une application et ou il la trouvera.
Il est aussi à noter que votre site web doit servir ces deux fichiers avec les mime-types suivant :
application/octet-stream
pour l’application IPAtext/xml
pour le manifest.plist
Si ces mimes-types ne sont pas respectés, votre appareil refusera l’installation de votre application.
Si tout se passe bien vous devriez pouvoir charger votre page web sur votre iPhone et cliquer sur le lien vous informera que le site souhaitera installer l’application.
Acceptez et revenez au menu home de votre iPhone, l’application devrait apparaitre et vous pouvez la lancer.
Cette méthode de déploiement ne vous permettra pas de distribuer des mises à jour de votre application de manière automatique.
Il est possible de mettre à jour l’application en réuplodant la nouvelle version sur le site web et en la réinstallant de la meme manière que précedemment.
Proposition d’amélioration: Vous pouvez si vous le souhaitez, intégrer un message de mise à jour dans votre application et proposer un lien de renvoi vers le manifest en comparant la version de l’application à la version uploadée sur votre serveur.