Ad Hoc Distribution
When to Use Ad Hoc
Ad Hoc distribution installs a signed build on a fixed list of registered devices without TestFlight Beta App Review. Use it for a small internal test, customer acceptance, an offline demonstration, or a time-sensitive verification where every device is known in advance.
Use TestFlight instead when testers change frequently, you need centralized updates and feedback, or you cannot collect UDIDs. Use an unlisted, Custom, or public App Store release for a durable production audience.
Requirements and Limits
You need:
- Active Apple Developer Program membership
- An explicit App ID matching the MeDo Bundle ID
- An Apple Distribution certificate and its private key
- An Ad Hoc provisioning profile containing the App ID, certificate, entitlements, and target device IDs
- Every target iPhone or iPad registered in the Apple developer account before packaging
Apple permits up to 100 registered devices per product family per membership year. Disabling a device during the year does not restore its slot. The device list can be reset at the start of a new membership year.
Select Ad Hoc in MeDo
Open Public Release / Invite Testing Build and choose Install on Specific Devices (Ad Hoc). The resulting IPA can run only on devices included in its provisioning profile.

Configure Apple Authorization
If the workspace is not connected, MeDo requests the App Store Connect API Issuer ID, Key ID, and .p8 private key. Use a Team Key: Apple’s Individual API keys cannot access provisioning endpoints.
An Account Holder or Admin can create one in App Store Connect → Users and Access → Integrations → App Store Connect API → Team Keys. Give the key the minimum role accepted by the MeDo workflow. Apple allows the .p8 file to be downloaded only once.
Uploading .p8 authorizes MeDo to perform operations allowed by the key’s role. Prefer a dedicated key, store the downloaded file securely, and revoke the key if it is exposed or no longer needed. When authorization succeeds, Release prerequisites shows Apple authorization as Completed and the signing certificates as Ready.

Register and Verify Devices
Collect each device ID carefully. A wrong UDID creates a package that cannot install on the intended device.
You can obtain an iPhone or iPad UDID from Finder or Xcode on a trusted Mac. The Check installable devices step provides Add Device, Manage Devices, and Refresh controls.
- Select Refresh and confirm the intended device is marked Installable.
- If it is missing, use Add Device or Manage Devices, or register it in Certificates, Identifiers & Profiles → Devices.
- Verify the UDID and product family before confirming registration. A new registration consumes one of the Apple developer account’s annual device slots.
- If a device or entitlement was added after the previous build, create a new provisioning profile and package.
- Start packaging only after the intended device is included.

Start Packaging
Each iOS packaging job consumes 500 credits. Confirm the amount shown by MeDo before proceeding because pricing may change.
Click Start Packaging. Step 4 displays Packaging... with an estimated 3–8 minute range and explains that results remain available in build records. Queue, signing, and service conditions may change the actual time.
When packaging succeeds, step 5 advances to Packaging Complete and displays an installation QR code plus Copy Installation Link, Download IPA, and Completed.

Install the Build
Packaging Complete confirms that MeDo generated the signed package. Verify installation and launch separately on a registered target device.
Use the MeDo installation link or QR code on a registered device. If the route uses over-the-air installation, open it in Safari and keep the device online long enough to download and verify the package.
MeDo may display a first-install developer-trust notice. Follow the prompts shown by the target device. An ordinary Ad Hoc build is signed with an Apple Distribution certificate and restricted by its provisioning profile; it is not an Enterprise app, and Apple’s Enterprise App manual-trust procedure should not be applied unless the package is enterprise-signed.
For developer teams created after June 6, 2021, development- and Ad Hoc-signed apps may need to contact Apple’s PPQ service when first launched. A restrictive network that blocks https://ppq.apple.com can prevent verification.
Troubleshooting
Installation Cannot Be Completed
Check:
- The device UDID exactly matches a device in the provisioning profile.
- The profile is not expired or invalidated.
- The distribution certificate is valid and its private key was available when signing.
- The Bundle ID and entitlements match the App ID and profile.
- The build supports the device’s OS version and architecture.
- The download and manifest URLs use valid HTTPS and are reachable from the device.
App Installs but Does Not Launch
- Confirm the device can reach Apple’s certificate-verification service.
- Check device logs for code-signing or entitlement errors.
- Regenerate the profile after changing capabilities.
- Repackage after adding a device; an existing IPA does not gain newly registered devices automatically.
A New Tester Needs Access
Register the new UDID, regenerate the profile, and create a new signed IPA. If this happens often, move the test to TestFlight external testing.
Security and Lifecycle
- Share install links only with intended testers, even though the provisioning profile limits compatible devices.
- Revoke exposed API keys and certificates immediately.
- Remove sensitive test data and disable test accounts after the engagement.
- Track certificate, profile, membership, and device-list renewal dates.
- Do not represent Ad Hoc as a permanent customer distribution channel.