Set Up a Simple Webpage to Deploy iOS Apps

Deploying iOS apps to devices when you are not using an App Store or an Enterprise Mobility Management (EMM) solution can be a challenge. With EMM’s, you may be able to use the enterprise store to deploy the apps to selected devices, but when this is not an option, you can set up a simple webpage that will initiate the apps’ installation directly to iOS devices.

This Knowledge Base article provides step-by-step instructions for setting up a simple webpage to deploy iOS apps.

How to Set up a simple webpage to deploy iOS apps

To deploy apps directly to iOS devices, you can set up a simple static webpage that devices can access directly with the mobile Safari browser. You can email users an iOS app install link from this simple webpage that will initiate the download and install process for the app on the device.

Prerequisites for setting up the server

  • A web server with SSL support and a valid trusted certificate.
  • A mobile iOS app saved in a location accessible to the iOS devices.
  • A web server that supports the MIME types: .plist; .ipa

Create a .plist file for the app

1. Create a new .plist file with this content:
<?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>PATH_TO_APP_BINARY</string>
        </dict>
      </array>
      <key>metadata</key>
      <dict>
        <key>bundle-identifier</key>
        <string>BUNDLE_ID</string>
        <key>bundle-version</key>
        <string>BUNDLE_VERSION</string>
        <key>kind</key>
        <string>software</string>
        <key>title</key>
        <string>APP_DISPLAY_NAME</string>
      </dict>
    </dict>
  </array>
</dict>
</plist>

2. Update the values in the file to match the app you want to deploy

    • PATH_TO_APP_BINARY – e.g. https://website.com/folder/app.ipa
    • APP_BUNDLE_ID – e.g. com.appdome.app2
    • APP_BUNDLE_VERSION – e.g 1.0.0
    • APP_DISPLAY_NAME – e.g. Appdome Test App

3. Save the .plist file in a location accessible to the server.

Create a static page

Create a static page that includes a hyperlink with the target set to:

itms-services://?action=download-manifest&url=PATH_TO_PLIST

Update the URL to point to the .plist file you created in the previous stage.

For instance, a simple page:

<!doctype html>
<html lang="en">
  <head>
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
      <title>iOS app download</title>
  </head>
  <body>
    <div class="row">
      <div class="col" align=center>
        <h2 class="cover-heading">Download the app</h2>
        <p class="lead">Click the button below to download and install the app</p>
        <a href="itms-services://?action=download-manifest&url=https://csweb1.appdomelabs.com:44300/iosapp_site/app.plist" class="btn btn btn-success btn-lg">Download</a>  
      </div>
    </div>
  </body>
</html>

Download the app

1. Access the webpage with the Safari mobile browser on an iOS device

2. Click the Download link

Set Up a Simple Webpage to Deploy iOS Apps - download app

3. Click “Install” in the popup modal

install message for Simple Webpage to Deploy iOS Apps

The app will be downloaded and installed on the device.

How Do I Learn More?

Check out our blog for more resources on troubleshooting.

If you have any questions, please send them our way at support@appdome.com or via the chat window on the Appdome platform.

Thank you!

Thanks for visiting Appdome! Our mission is to make mobile integration easy. We hope we’re living up to the mission with your project. If you don’t already have an account, you can sign up for free.  

Avi Yehuda

Have a question?

Ask an expert

AaronMaking your security project a success!