TestFlight propose une distribution bêta en direct des applications iOS (sur les appareils non jailbreakés). Comment cela peut-il être fait? Est-ce une fonctionnalité iOS ou un exploit de vulnérabilité?
TestFlight propose une distribution bêta en direct des applications iOS (sur les appareils non jailbreakés). Comment cela peut-il être fait? Est-ce une fonctionnalité iOS ou un exploit de vulnérabilité?
Réponses:
Cela était possible avant que TestFlight ne déploie un service. La technique découle du mécanisme de distribution des entreprises. Depuis 4.0, les appareils prennent en charge l'installation à partir du Web.
Rappelez-vous - vous devez toujours signer la distribution bêta pour un ensemble sélectionné d'UDID que vous ne pouvez pas installer simplement sur n'importe quel appareil. Tout ce qu'ils font, c'est supprimer l'email de l'étape IPA.
Voir:
Mise à jour: Je tiens à dire que Test Flight est l'un des outils les plus utiles que j'ai utilisés lors du développement. Le simple fait de retirer l'e-mail de l'IPA de la photo était un euphémisme - j'essayais simplement d'appeler le mécanisme technique. Ils font un travail fantastique en gérant l'ensemble du processus bêta. Obtenir de nouveaux appareils inscrits. Notification aux utilisateurs, etc.
You still need to sign the beta distribution for a select set of UDIDs you can't just willy nilly install it on any device
. Pour un profil d'approvisionnement de distribution d'entreprise, vous n'avez pas besoin de spécifier les périphériques et vous pouvez (au moins techniquement) installer le binaire sur n'importe quel périphérique. Cependant, la licence vous limite à l'installer uniquement dans l'entreprise à laquelle le profil de distribution a été délivré.
Cet article a montré comment la mise en œuvre Apples OTA fonctionne et peut également être utilisée en dehors des entreprises: distribution d'applications sans fil iOS
Le processus complet est documenté par Apple . Apple a également publié de la documentation et des exemples de code pour enregistrer des appareils et obtenir l'UDID à l'aide de profils, afin que votre site Web puisse détecter quel appareil appelle.
Quelques solutions supplémentaires avec différentes forces:
iOS Beta Builder , une application Mac pour créer le site Web à l'aide d'une version. Téléchargez simplement les fichiers résultants sur votre serveur Web.
Diawi : service Web simple. Téléchargez votre fichier IPA, définissez éventuellement un mot de passe et envoyez un lien à vos testeurs.
AppSendr : service Web pour l'hébergement de versions bêta, similaire à Testflight, mais n'inclut pas le processus d'enregistrement de l'appareil. Mais fournit des utilitaires de déploiement pour télécharger automatiquement de nouvelles versions.
HockeyKit : projet open source pour l'hébergement de versions bêta sur votre propre serveur PHP5 avec des fonctionnalités supplémentaires comme un client pour les mises à jour intégrées, des sites Web spécifiques aux appareils automatiques et la gestion de plusieurs applications. Entièrement basé sur un fichier et un répertoire.
HockeyApp : service Web pour l'hébergement de versions bêta, les mises à jour intégrées à l' application, les statistiques, y compris l'enregistrement de l'appareil, l'invitation et le recrutement. Fournit également la collecte de rapports d'incident côté serveur, la symbolisation (pour tous les threads) et le regroupement d'incidents pour les applications bêta et App Store (iOS + Mac). Les SDK sont open source, utilisant HockeyKit , QuincyKit et PLCrashReporter (qui est la seule solution sûre sur la façon de faire la collecte de rapports d' erreur sur iOS, voir cet article .
Remarque: je suis le développeur principal de HockeyKit et QuincyKit , et l'un des développeurs de HockeyApp .
Testflight utilise essentiellement le Ad Hoc normal comme déjà indiqué.
Pour que cela fonctionne, vous avez besoin du UDID
pour chaque appareil afin de l'ajouter au profil Ad Hoc, de recompiler l'application avec le nouveau profil et de redistribuer la nouvelle version.
Vous pouvez obtenir le UDID
à l'aide de la demande d'authentification OTA. Il s'agit en fait d'une étape effectuée dans MDM avant que le profil réel ne soit déployé sur l'appareil. Il demande essentiellement à l'appareil des informations supplémentaires sur lui-même et le renvoie à un serveur spécifié.
La première étape est documentée ici: Configuration Apple OTA
Je suppose que Testflight l'utilise juste après le processus d'enregistrement pour collecter le UDID
, le nom du téléphone, ...
Oui, il s'agit d'une fonctionnalité de base d'iOS pour les clients d'entreprise qui souhaitent distribuer OTA.
Vraisemblablement, vous transmettez votre UDID à TestFlight avec l'application et ils utilisent leur licence d'entreprise pour vous envoyer l'application. Je suis sûr que je manque beaucoup de détails techniques, mais si vous voulez en savoir plus, Apple a une vidéo à ce sujet de la WWDC 2010.
Connectez-vous à developer.apple.com, accédez aux vidéos WWDC 2010 et utilisez le lien pour accéder aux vidéos. La vidéo que vous souhaitez est "Session 108 - Gestion des appareils mobiles". Il est très instructif sur ce qui est possible avec OTA et sur les étapes à suivre pour effectuer l'approvisionnement OTA.
Les appareils iOS courants sont «vulnérables» à l' exécution de l'utilisateur chargeant des applications ad hoc à partir de tout développeur qui possède l'UDID de cet appareil, et enregistre cet UDID parmi leurs 100 appareils autorisés sur le portail des développeurs d'Apple.
La distribution OTA est juste une autre façon d'installer une distribution de test bêta Ad Hoc à partir d'un développeur inscrit.