OTA (Over the Air) Installation / Signing – iOS Developer / Enterprise

OTA (Over the Air) Installation / Signing – iOS Developer / Enterprise

Need to download and install an app (*.ipa) without a computer (OTA)?
This can be done by just visiting a url link. No need for TestFlight or the App Store.

First you’ll need an Enterprise ($299) or Developer ($99) Apple ID account. (You can’t do OTA with a normal account) Developer license allows you 100 iPhone devices and 100 iPad devices

Create your iOS Distribution certificatehttps://developer.apple.com/account/ios/certificate/ or use Xcode to do it for you.

Create your App ID or just use a wildcard * for ID or again let Xcode handle that.

If you’re using a developer account then you’ll need to add your devices with the identifier (UDID) or again plug your device into Xcode and it will handle it. Obviously for adding other devices which you are not nearby, you’ll need to get the UDID for that device and add it. (You can get UDID from iTunes, but not ideal as you’re trying to install the app without need for a computer) – You can do this by making a *.mobileconfig or google “get my UDID” and using a public service.

Next create a Provisioning profile – iOS Distribution – Ad Hoc and select your Distribution cert and the wildcard or App ID you made and whatever Profile name you want. This gives you the *.mobileprovision file.

To serve the App (*.ipa) file you’ll need to host them on a server/website with https (SSL).

Edit mysite.com links.

index.html

<a href="itms-services://?action=download-manifest&url=https://mysite.com/ota/manifest.plist">
Click to Install onto Your Device.
</a>

manifest.plist

<?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>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://mysite.com/ota/myapp.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.mysite.myapp</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Your App</string>
</dict>
</dict>
</array>
</dict>
</plist>

Upload the index.html, manifest.xml and myapp.ipa (Ad Hoc Distribution signed)

Navigate to https://mysite.com/ota/ and tap to install, go to home screen and you’ll see it installing.

If the app doesn’t install, check the links/paths are correct.
If the app installs but is greyed out and unable to open, check the archived App (.ipa) is signed with the correct certificate and that the UDID is registered if using developer account.