Such links are typically used by iOS applications or within Safari on an iOS device to trigger a direct download or installation process within the iTunes ecosystem. For example, clicking on a link like this on an iOS device could prompt the user to download and install an app or to access specific content directly through iTunes or another compatible app.
For that link to work, it must point to a server hosting a file with the following XML structure. This tells the device what app to download. Itms-services Action Download-manifest Amp-url Https
<?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://example.com/apps/YourAppName.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.yourappname</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Your App Name</string>
</dict>
</dict>
</array>
</dict>
</plist>
| Error Message / Behavior | Most Likely Cause | Solution |
|--------------------------|------------------|----------|
| “Cannot connect to server” | HTTP instead of HTTPS | Switch to HTTPS |
| Link does nothing | Malformed itms-services URI, e.g., amp-url | Correct to &url |
| “Invalid manifest” | .plist not served with correct MIME type | Configure server: AddType text/xml .plist |
| “Unable to download app” | Certificate expired or self-signed | Install CA profile or use public CA |
| App downloads but won’t install | Provisioning profile does not include device UDID | Rebuild .ipa with correct device list | Such links are typically used by iOS applications
Before Apple acquired TestFlight, this was the standard for over-the-air (OTA) beta distribution. Even today, many CI/CD pipelines (Jenkins, Fastlane) generate manifest .plist and .ipa pairs, then email or SMS the itms-services link to testers. | Error Message / Behavior | Most Likely