您的位置:首页 > 编程语言

How does TestFlight do it?(分发测试版本可以用到的一些工具和代码)

2013-06-30 11:24 549 查看
TestFlight offers over-the-air beta distribution of iOS apps (on non-jailbroken devices). How can this be done? Is this an iOS feature, or a vulnerability exploit?

iphone ios distribution ios-provisioning beta-testing
share|edit
asked Feb 11 '11 at 19:36




hpique
13.9k43140258

Great question, but I'm not sure if this is on topic. It's borderline, IMO. That said, I'd love to know the answer to this too, so
+1 – Moshe Feb
11 '11 at 19:37
 If it's an iOS feature, it will surely help me to understand provisioning better. – hpique Feb
11 '11 at 19:41
7 
@Moshe: Can you explain why you think this is off-topic? – Besi Jan
19 '12 at 9:26
 Thus question is related to a distribution tool, not in any way to writing code. That said, I wrote my comment nearly a year ago. The
environment on SO was a little different. – Moshe Jan
19 '12 at 11:55
3 
This is a very good question. – Proud
Member Apr
23 '12 at 15:12


6 Answers

activeoldestvotes

up
vote67down
voteaccepted
This was possible before TestFlight rolled out a service. The technique stemmed out of the enterprise distribution mechanism. Since 4.0 devices have supported install from web.

Remember - 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. All they are doing is taking the email the IPA step out of things.

See:

http://www.alexcurylo.com/blog/2010/08/27/wireless-ad-hoc-distribution/

Update: I want to say that Test Flight is one of the most helpful tools I've used when developing though. Just taking the IPA emailing out of the picture was an understatement- I was just trying to call out the technical mechanism. They do a fantastic job managing
the whole beta process. Getting new devices enrolled. Notifying users etc.

share|edit
edited Oct
17 '11 at 9:46





chedabob
1105

answered Feb 11 '11 at 19:45





Nick
3,88142138

 
5 
how do they make money, it says free on the homepage? – Jonathan. Oct
21 '11 at 8:54
1 
I imagine they will start some kind of premium offering in the future. It's free now and the new SDK is really impressive. It can gather
crash logs and usage information directly from your test clients and even symbolicate them if you are comfortable uploading your dsyms. – Nick Oct
21 '11 at 17:21
7 
It is quite impressive, just I'm used to "If it's too good to be true it usually is" on the internet :) – Jonathan.Oct
21 '11 at 17:49
3 
@Nick I think your answer is not entirely correct. 
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
. For an enterprise distribution provisioning profile you don't have to specify the devices and you can (at
least technically) install the binary on any device. However, the license restricts you to only install it within the company that the distribution profile was issued to. – Besi Jan
19 '12 at 9:23
5 
+1 for "willy nilly install" – Nils
Munch Mar
27 '12 at 8:23
show 2 more
comments
up
vote65down
vote
This article showed how Apples OTA implementation works and can be used outside enterprises as well:ios
wireless app distribution

The complete process is documented
by Apple. Apple also published documentation and sample code for registering
devices and get the UDID by using profiles, so your website can detect which device is calling.

Some additional solutions with different strenghts:

iOS Beta Builder,
a Mac Application to create the website by using a build. Simply upload the resulting files to your webserver.

Diawi: Simple Web service. Upload your IPA file, optionally set
a password and send a link to your testers.

AppSendr: Web service for beta build hosting, similar to Testflight,
but does not include the device registration process. But provides deployment utilities to automatically upload new versions.

HockeyKit: Open source project for hosting
beta versions on your own PHP5 server with additional functionalities like an client for In-App-Updates, automatic device specific web sites and handling multiple applications. Completely file and directory based.

HockeyApp: Web Service for beta build hosting, In-App-Updates,
Statistics, and including device registration, invite and recruitment. Also provides server side crash report collection, symbolication (for all threads) and crash grouping for beta and app store apps (iOS + Mac). SDKs are open source, using HockeyKitQuincyKit and PLCrashReporter (which
is the only safe solution on how to do crash report collection on iOS, see this
article.

Note: I am the main developer of HockeyKit and QuincyKit,
and one of the developers of HockeyApp.

share|edit
edited Jun
18 at 10:20





NANNAV
1,8091723

answered Feb 12 '11 at 10:16




Kerni
4,5412725

  
up
vote3down
vote
An alternative is Hockey,
which is a web app you run on a server of your own, and a framework you embed in the app. Somehow the app knows when there's an update to be downloaded, and triggers its own update.

I use Test Flight, myself, but this is another utilization of the same feature.

share|edit
answered Feb 11 '11 at 21:11





Dan Ray
12.5k22261

 
I am using Testflight and it was a big leap
forward. However, hockeyapp seems to offer quite a bit more functionality and more fine grained control. To be fair, however, of course they have a paid service which is not the case with Testflight. – Besi Jan
19 '12 at 9:25
up
vote3down
vote
Yes this is a core feature of iOS for Enterprise Customers who wish to distribute OTA.

Presumably you would pass your UDID over to TestFlight along with the app and they use their Enterprise Licence to send the app to you. I'm sure I'm missing a lot of the technical details but if you want to know more, Apple has a video on this from WWDC 2010.

Login to developer.apple.com, go to WWDC
2010 Videos and use the link to get to the vidoes. The video you want is "Session 108 - Managing Mobile Devices". It is very informative about what is possible with OTA and the steps you have to take to do OTA provisioning.

share|edit
answered Feb 11 '11 at 21:09





Robotic Cat
2,1621920

  
up
vote2down
vote
Testflight basically uses the normal Ad Hoc as already stated.

For this to work, you need the 
UDID
 for
every device in order to add it to the Ad Hoc profile, re-compile the app with the new profile an redistribute the new build.

You can get the 
UDID
 with
the help of the OTA Authentication Request. This is actually a step that is done in MDM before the actual profile is rolled out to the device. It basically asks the device for further information about itself and send it back to a self specified server.

The first step is documented here: Apple
OTA Configuration

I guess Testflight uses this right after the registration process to collect the 
UDID
,
phone name, ...

share|edit
answered Jan 23 '12 at 10:30





Thomas Fankhauser
1,114711

  
up
vote0down
vote
Stock iOS devices are "vulnerable" to running the user loading Ad Hoc apps from any developer who has that device's UDID, and registers that UDID among
their 100 allowed devices on Apple's developer portal.

OTA distribution is just another way to install an Ad Hoc beta test distribution from an enrolled developer.

share|edit
edited Apr
27 '12 at 19:34

answered Feb 11 '11 at 20:41




hotpaw2
35.3k32364

  
Great question, but I'm not sure if this is on topic. It's borderline, IMO. That said, I'd love to know the answer to this too, so
+1 – Moshe Feb
11 '11 at 19:37
 If it's an iOS feature, it will surely help me to understand provisioning better. – hpique Feb
11 '11 at 19:41
7 
@Moshe: Can you explain why you think this is off-topic? – Besi Jan
19 '12 at 9:26
 Thus question is related to a distribution tool, not in any way to writing code. That said, I wrote my comment nearly a year ago. The
environment on SO was a little different. – Moshe Jan
19 '12 at 11:55
3 
This is a very good question. – Proud
Member Apr
23 '12 at 15:12
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐