Comment TestFlight le fait-il?

197

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é?

hpique
la source
Grande question, mais je ne sais pas si c'est sur le sujet. C'est limite, OMI. Cela dit, j'aimerais aussi connaître la réponse à cette question, alors +1
Moshe
S'il s'agit d'une fonctionnalité iOS, cela m'aidera certainement à mieux comprendre le provisionnement.
hpique
12
@Moshe: Pouvez-vous expliquer pourquoi vous pensez que c'est hors sujet?
Besi
La question est donc liée à un outil de distribution, et non à l'écriture de code. Cela dit, j'ai écrit mon commentaire il y a près d'un an. L'environnement sur SO était un peu différent.
Moshe
8
C'est une très bonne question.
Proud Member

Réponses:

87

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.

pseudo
la source
6
comment font-ils de l'argent, dit-il gratuitement sur la page d'accueil?
Jonathan.
1
J'imagine qu'ils commenceront une sorte d'offre premium à l'avenir. C'est gratuit maintenant et le nouveau SDK est vraiment impressionnant. Il peut recueillir des journaux de plantage et des informations d'utilisation directement à partir de vos clients de test et même les symboliser si vous êtes à l'aise pour télécharger vos dsymes.
Nick
7
C'est assez impressionnant, mais j'ai l'habitude de "Si c'est trop beau pour être vrai, c'est généralement le cas" sur Internet :)
Jonathan.
Je soupçonne qu'ils gagneront de l'argent en facturant leurs services en production et garderont les services bêta gratuits. Ils ne prennent pas officiellement en charge l'utilisation de la production aujourd'hui et continuent de faire allusion à une "solution de production" à venir dans leurs forums de support.
Nils
5
@ Nick, je pense que votre réponse n'est pas tout à fait correcte. 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é.
Besi
91

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 .

Kerni
la source
5

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, ...

Thomas Fankhauser
la source
4

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.

Chat robotique
la source
0

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.

hotpaw2
la source