views:

77

answers:

2

I must be missing something conceptually here, and I'm hoping someone can set me straight.

I'm not really clear why Ad Hoc deployments of iPhone applications are necessary, and why development builds can't be used instead.

Specifically, I don't understand why I can't just send someone my development provisioning profile and my app, as long as their machine id is included in my development provisioning profile.

So, on the Apple Provisioning Portal, under Devices, I add the device ID of my iPhone, and that of my friend. Under Certificates, I submit a CSR, which, to my understanding, does not contain anything specific about my device (it writes a private key to my machine, but I don't think there's anything specific about my device in the CSR). I then get a certificate which I download. I then create a development provisioning profile. In the process I select the certificate I just created (in my company's name but with nothing specific about my device), and I check all the devices, including those of my friend. I then download and install that provisioning profile on my iPhone (and only that provisioning profile, no other profiles or certificates or anything on my device). I then build my app, signing it with that development provisioning profile. I can then install the created .ipa on my iPhone, and it works.

So what keeps me from sending my friend (whose device id I checked when creating the development provisioning profile) the same development .mobileprovision and .ipa files, and he can install and run just the same?

Doesn't that get me the same effect as Ad Hoc deployment, without the additional hassles of Ad Hoc deployment? (of which I admit there may not be many, but there are some)

A: 

Ad Hoc deployment allows beta testers without access to a Mac, or a Mac with Developer tools, to install the developer's apps. The Ad Hoc recipient can use iTunes on a Windows PC, and long as their devices UDID is one of the up to 100 registered with the developer, they can install an Ad Hoc app emailed to them.

Exposing a private key, which would allow someone else to sign apps with the developers registered name may not be something every developer would want some stranger to do, just to let them test your app.

hotpaw2
Thanks, but I don't understand how giving my friend my app plus my development provisioning profile gives them my private key. And you've described what an ad hoc build can do, but my question is why can't a development build do the same?
M Katz
A: 

AdHoc is not developmental distribution; it is a release distribution without the App Store. It is a production level environment. For most apps, this doesn't mean much but for apps that deals with iAd or push notifications, this is a big deal.

For example, iAd development builds pull ads with higher frequency of error rates (roughly 80% errors) so that developers can work out the kinks of error conditions. These error conditions manifest in lower frequency with production iAd environments (App Store/Ad Hoc builds).

Giao
Well, it may be that for some purposes a distribution build behaves differently. But for the purposes of my question let's assume that what you want to show the friend and get feedback on is the same in a development build and a distribution build.
M Katz
That may be what you want to do. However, Apple treats Ad Hoc distribution as a release mechanism and not as a testing/development environment.
Giao