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)