Beta testing of iPad and iPhone apps is normally done via ad-hoc distribution, whereby the apps are distributed directly from developers to testers, instead of via the app store. However, because Apple normally only permits apps to be installed from the app store, it’s necessary for the developer to explicitly include a list of device identifiers in the beta version of their app, which allows the app to be installed on those devices. These identifiers, called UDIDs, must be registered with Apple; each developer is allowed up to 100 registered devices for testing purposes.
To install an app via ad-hoc distribution, you must send the UDID of your device to the developer. You can determine your UDID by plugging the device in to your computer, going into iTunes, and looking at the top of the “Summary” screen.
Initially this will show the serial number of the device, which is not what you want. To find out the UDID, click on the serial number and it will change to show the UDID instead. To copy this to the clipboard, control-click on the UDID and select “Copy”. You can then paste this into an email to the developer.
Can’t this be done from the device itself?
There used to be an app called Ad Hoc Helper which you could run directly on the device. It would retrieve the UDID and allow you to email it directly. However, in iOS 7, Apple introduced restrictions that prevent apps from determining the UDID, as it was being used by some apps to uniquely identify users for advertising purposes without their consent. While the change is a good thing for privacy, it means that Ad Hoc Helper no longer works (in fact it has been removed from the app store).
If you are a developer and receive a UDID from someone who uses the app, you’ll get what looks like a valid UDID but actually isn’t. iOS feeds a bogus UDID to the app, which begins with the string “FFFFFFFF”. If you add this to your provisioning profile, it will not work, as it’s not the true UDID of the device. The person installing it will either get an error message, or the installation will just silently abort once it’s nearly complete. So make sure that you only use UDIDs obtained through iTunes in the provisioning profile, and avoid any that start with “FFFFFFFF”.