Installing IPA files over the air eliminates the need for iTunes or a Mac. Your testers can install your iOS app by simply tapping a link on their device. This guide explains exactly how OTA installation works and how to set it up.
Whether you're doing this manually or using a platform like BetaDrop, understanding the underlying process helps troubleshoot issues and make informed decisions.
What is OTA Installation?
OTA (Over-The-Air) installation is Apple's method for installing apps wirelessly without connecting to a computer. It's the same technology used by enterprise companies to distribute internal apps and by developers for beta testing.
The technology relies on the itms-services protocol, which tells iOS to fetch an app's installation manifest and download the IPA file directly.
How OTA Installation Works
Here's the technical flow when a user installs an IPA over the air:
- User taps install link — A special URL starting with
itms-services:// - iOS fetches manifest — The URL points to a manifest.plist file on your server
- Manifest parsed — iOS reads the app metadata and IPA download location
- IPA downloaded — iOS downloads the IPA from the URL specified in the manifest
- Installation prompt — User confirms they want to install the app
- App installed — The app appears on the home screen
Requirements for OTA Installation
1. Properly Signed IPA
Your IPA must be signed with an Ad Hoc or Enterprise distribution profile. Development profiles won't work.
- Ad Hoc — Requires device UDIDs in the provisioning profile. Limited to 100 devices per device type per year.
- Enterprise — No device restrictions but requires Apple Developer Enterprise Program ($299/year).
2. HTTPS Server
Both your manifest.plist and IPA must be served over HTTPS with a valid SSL certificate. iOS rejects HTTP connections for security. This is non-negotiable.
3. Correct MIME Types
Your server must serve files with correct content types:
.plist→application/xmlortext/xml.ipa→application/octet-stream
The Manifest.plist File
The manifest is an XML property list that tells iOS about your app. Here's a complete example:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<!-- Required: The IPA file -->
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://example.com/builds/myapp.ipa</string>
</dict>
<!-- Optional: Display icon -->
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://example.com/icons/icon-57.png</string>
</dict>
<!-- Optional: Full-size icon -->
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://example.com/icons/icon-512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.yourcompany.appname</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>My App Name</string>
</dict>
</dict>
</array>
</dict>
</plist>Required Manifest Fields
- software-package URL — Direct HTTPS link to your IPA file
- bundle-identifier — Must match your app's bundle ID exactly
- bundle-version — Must match the version in your IPA
- kind — Always "software" for apps
- title — Display name shown during installation
Optional Icon Fields
Including display-image (57x57) and full-size-image (512x512) shows your app icon in the installation prompt. Without these, users see a generic placeholder.
Creating the Install Link
The install link follows this format:
itms-services://?action=download-manifest&url=https://example.com/manifest.plistKey points:
- The manifest URL must be HTTPS
- The URL should be properly URL-encoded if it contains special characters
- This link only works on iOS devices (Safari or compatible browsers)
Step-by-Step Manual Setup
Step 1: Export Your IPA
In Xcode, archive your app and export with Ad Hoc or Enterprise distribution. Make sure to select "Export for OTA installation" if prompted.
Step 2: Prepare Your Server
Upload to any HTTPS-enabled server. Verify MIME types are configured correctly. Test that files are directly accessible.
Step 3: Create the Manifest
Use the template above. Replace all URLs with your actual file locations. Match bundle-identifier exactly.
Step 4: Upload Files
Upload both the manifest.plist and IPA file. Note the exact manifest URL.
Step 5: Create Install Link
Construct the itms-services link using your manifest URL. Share this link with testers.
The Easy Way: Use BetaDrop
Manual setup is error-prone and tedious for every build. BetaDrop handles all of this automatically:
- Upload your IPA file
- We generate the manifest.plist automatically
- Everything is hosted on HTTPS
- Get your install link instantly
No server configuration. No XML editing. No SSL certificates to manage.
Troubleshooting OTA Installation
"Unable to Download App"
Common causes:
- IPA not signed with Ad Hoc/Enterprise profile
- Device UDID not in provisioning profile (Ad Hoc)
- SSL certificate issues on your server
- Incorrect MIME types
- Bundle identifier mismatch between manifest and IPA
"Cannot Connect to Server"
- Manifest or IPA URL is not accessible
- Server is blocking iOS user agent
- HTTP instead of HTTPS
"Untrusted Developer"
For Enterprise and some Ad Hoc apps, users must trust the certificate: Settings → General → VPN & Device Management → [Your Certificate] → Trust.
Link Opens Browser Instead of Installing
Some apps use embedded browsers that don't support itms-services. Tell testers to open the link in Safari.
Frequently Asked Questions
What is OTA installation for iOS?
OTA (Over-The-Air) installation lets iOS devices install apps directly from a web link without connecting to a computer. It uses Apple's itms-services protocol.
What is a manifest.plist file?
It's an XML configuration file that tells iOS where to download your app and provides metadata like bundle ID, version, and title.
Why does OTA installation require HTTPS?
Apple enforces HTTPS for security. iOS will not download apps from insecure HTTP connections.
Can I install any IPA over the air?
No. Only IPAs signed with Ad Hoc (with registered device UDIDs) or Enterprise distribution profiles work for OTA installation.
How long do OTA install links last?
As long as your files remain on the server and the signing certificate is valid. With BetaDrop, we handle hosting indefinitely.
Summary
Installing IPA files over the air requires:
- A properly signed IPA (Ad Hoc or Enterprise)
- HTTPS hosting with valid SSL
- A correctly formatted manifest.plist
- An itms-services:// install link
While you can set this up manually, BetaDrop automates the entire process. Upload your IPA and get an install link in seconds—no server setup required.
Need faster distribution? Upload your build on BetaDrop and start sharing with testers immediately.
