Ad hoc distribution is Apple's way to install a test build on specific, registered devices without the App Store or TestFlight. In Xcode it's now called Release Testing.
The four ways to sign an iOS app
| Profile type | Who can install | Review | Typical use |
|---|---|---|---|
| Development | Registered devices of your team | None | Running from Xcode while you build |
| Ad hoc | Up to 100 registered devices per product family | None | Test builds for clients, QA and colleagues |
| App Store | Anyone, through the App Store or TestFlight | App Review | Release and TestFlight betas |
| Enterprise | Employees of your organisation | None | Internal company apps, with an Enterprise membership |
How ad hoc works
- Register each device. Its UDID is added to your Apple Developer account.
- Create an ad hoc provisioning profile that lists those devices.
- Sign the app with your distribution certificate and that profile, and export an .ipa.
- Host the .ipa with a small manifest file, over HTTPS.
- Install over the air. A link like
itms-services://?action=download-manifest&url=https://…/manifest.plisttells iOS to download and install the app.
If the iPhone isn't in the profile, iOS refuses to install it. That's why adding a tester usually means steps 1 to 5 again.
The limits
- 100 devices per product family, per membership year. iPhones and iPads each have their own 100. How the device limit works.
- Profiles expire after a year, and builds stop opening when the profile or certificate expires.
- A paid membership is required. Free Apple accounts can't create ad hoc profiles.
Making ad hoc painless
The hard part is the loop of collecting UDIDs, updating the profile and rebuilding. BuildFerry automates it: the tester opens a link, you approve, and the iPhone is registered and the build re-signed in the cloud, with your own Apple account.
Questions
What is the difference between ad hoc and development builds?
Both install only on registered devices. Development builds are signed with a development certificate for debugging from Xcode. Ad hoc builds are signed with a distribution certificate, behave like the release app, and are meant for testers.
Is ad hoc distribution allowed by Apple?
Yes, for testing on devices you register. It is not meant for distributing an app to the public instead of the App Store.
Does an ad hoc build need App Review?
No. Ad hoc builds are never reviewed. Only App Store and external TestFlight builds go through App Review.