itms-services://?action=download-manifest&url=https://your-server.com/manifest.plist
The itms-services URL scheme is a mechanism Apple iOS devices support to trigger over-the-air installation of enterprise or ad-hoc signed apps outside the App Store. A typical link uses the custom URL scheme itms-services and a query that tells the device to download a manifest plist describing the app bundle:
For :
A correctly formatted OTA manifest link looks like this: Itms-services Action Download-manifest Amp-url Https
iOS itms-service not working, not able to install the app via safari
: The mandatory parameter directing the operating system to fetch an XML-formatted property list ( .plist ) rather than an immediate application binary.
: While Safari fully supports this protocol, some in-app browsers (like those found in chat apps) may result in a blank screen. Users on GitHub have noted issues with itms-services in third-party browsers, so it is always best to instruct users to open the link in Safari. itms-services://
: Development teams share ad-hoc builds with testers for feedback before an official release. Stack Overflow App Updates
Web servers (like Nginx, Apache, or IIS) must understand how to serve .plist and .ipa files. Ensure your configuration returns the proper content headers: Distribute proprietary in-house apps to Apple devices
iOS itms-service not working, not able to install the app via safari Users on GitHub have noted issues with itms-services
To create a functional download anchor within an AMP template, use a standard link attribute, while ensuring the target is explicitly declared:
: If you are deploying via an Ad-Hoc distribution profile rather than an Enterprise Apple Developer Account, verify that the individual device's UDID is explicitly registered inside the provisioning profile compiled inside the .ipa . Summary of Best Practices Implementation Element Requirement Technical Reason Protocol Scheme itms-services://?action=download-manifest Forces iOS to handle the browser request natively. Manifest Target Encrypted https:// only App Transport Security (ATS) blocks insecure downloads. AMP Anchor Format Percent-Encoded Query Params Prevents breaks in the AMP validation engine parsing. iFrame Breakout target="_top"
| Error / Symptom | Likely Cause | Solution | |------------------------------------------|------------------------------------------------------------------------------|--------------------------------------------------------------------------| | Tapping the link does nothing | URL malformed, or & not properly encoded in HTML | Use & instead of & in HTML. Ensure the scheme is itms-services:// | | “Cannot connect to server” | Manifest URL uses HTTP instead of HTTPS, or certificate is invalid | Switch to HTTPS with a trusted certificate (e.g., Let’s Encrypt) | | “Unable to download app” after prompt | IPA URL inside manifest is HTTP, or the IPA is not signed correctly | Make IPA URL HTTPS, re‑sign with valid Ad Hoc/Enterprise profile | | App icon appears but installation hangs | iOS version too old? (pre‑iOS 7 had different requirements) or network issue| Check that the IPA is reachable and not blocked by firewall | | “Invalid manifest” error | Manifest file is malformed XML, or missing required keys ( items , assets )| Validate with a plist linter. Ensure URLs are absolute. | | App installs but won’t open (crashes) | Provisioning profile doesn’t include the device’s UDID (Ad Hoc) | Add UDID, regenerate profile, rebuild IPA |
: This is the custom protocol registered by Apple. It signals the iOS operating system to launch its internal installation daemon rather than opening a traditional webpage.