Back to Blog

How to Install IPA Files Over the Air (OTA)

BetaDrop Team
9 min read
install IPA over the airOTA IPA installmanifest.plistitms-services

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:

  1. User taps install link — A special URL starting with itms-services://
  2. iOS fetches manifest — The URL points to a manifest.plist file on your server
  3. Manifest parsed — iOS reads the app metadata and IPA download location
  4. IPA downloaded — iOS downloads the IPA from the URL specified in the manifest
  5. Installation prompt — User confirms they want to install the app
  6. 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:

  • .plistapplication/xml or text/xml
  • .ipaapplication/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.plist

Key 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:

  1. Upload your IPA file
  2. We generate the manifest.plist automatically
  3. Everything is hosted on HTTPS
  4. 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.

Ready to Distribute Your App?

Upload your IPA or APK file and get a shareable install link in seconds. No account required. Completely free.

Upload Your Build on BetaDrop
iMobile Designs
Developed by iMobile Designs
Made within India