<!--
{
  "availability" : [
    "iOS: 5.0.0 -",
    "iPadOS: 5.0.0 -",
    "macCatalyst: 5.0.0 -",
    "macOS: 10.9.0 -",
    "tvOS: 10.2.0 -",
    "visionOS: 1.1.0 -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "DeviceManagement",
  "identifier" : "/documentation/DeviceManagement/Install-Application-Command",
  "metadataVersion" : "0.1.0",
  "role" : "Web Service Endpoint",
  "symbol" : {
    "kind" : "Web Service Endpoint",
    "modules" : [
      "Device Management"
    ],
    "preciseIdentifier" : "rest:put:mdm#InstallApplicationCommand"
  },
  "title" : "Install Application"
}
-->

# Install Application

Install a third-party app on a device.

## Discussion

The request must contain only one of these keys: `iTunesStoreID`, `Identifier`, or `ManifestURL`.

Installation prompts the user to approve or cancel the update. If the device is supervised, the device only prompts when the app to install is in the foreground.

Set the organization name that appears in this prompt in the `OrganizationInfo` dictionary using the `Settings` command.

If the app is a managed app, this command updates it. This command fails if Declarative Device Management is managing the app.

In macOS, the device returns an `Acknowledged` response after validating the parameters, but before downloading and installing the app. However, it doesn’t notify the MDM server about errors that occur during the installation process.

For macOS VPP app installations, if the app is device licensed, the system must receive the `InstallApplication` command on the device channel. If the app is user licensed, the system must receive the `InstallApplication` command on the user channel.

Prior to iOS 16.0 and tvOS 16.0, this command would return `NotNow` when Setup Assistant was running. Starting in iOS 16.0 and tvOS 16.0, the command may be sent to supervised devices during Setup Assistant. However, you should only attempt to install device-based VPP apps or enterprise apps while in the awaiting configuration state, as it is unlikely the device would have an App Store account configured, and thus commands that depend on one will fail.

Refer to the following sections to determine supported channels and requirements, and to see an example request and response.

### Command availability

|||
|--------------------------|------------------------------------------------|
|Device channel            |iOS, macOS, Shared iPad, tvOS, visionOS, watchOS|
|User channel              |macOS                                           |
|Requires supervision      |N/A                                             |
|Allowed in user enrollment|iOS, macOS, visionOS                            |
|Required access right     |AllowAppInstallation                            |

### Example request and response

**Enterprise:**

This command installs an enterprise app.

**Request:**

```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>Command</key>
    <dict>
        <key>ManagementFlags</key>
        <integer>0</integer>
        <key>ManifestURL</key>
        <string>https://yourmdmhost.example.com/files/myenterpriseapp.plist</string>
        <key>RequestType</key>
        <string>InstallApplication</string>
    </dict>
    <key>CommandUUID</key>
    <string>0001_InstallApplication</string>
</dict>
</plist>
```

**Response:**

```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>CommandUUID</key>
    <string>0001_InstallApplication</string>
    <key>Identifier</key>
    <string>com.acme.myenterpriseapp</string>
    <key>State</key>
    <string>Installing</string>
    <key>Status</key>
    <string>Acknowledged</string>
    <key>UDID</key>
    <string>00008020-000915083C80012E</string>
</dict>
</plist>
```

**App Store:**

This command installs an App Store app.

**Request:**

```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>Command</key>
    <dict>
        <key>ManagementFlags</key>
        <integer>0</integer>
        <key>Options</key>
        <dict>
            <key>PurchaseMethod</key>
            <integer>1</integer>
        </dict>
        <key>RequestType</key>
        <string>InstallApplication</string>
        <key>iTunesStoreID</key>
        <integer>1096834193</integer>
    </dict>
    <key>CommandUUID</key>
    <string>0001_InstallApplication</string>
</dict>
</plist>
```

**Response:**

```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>CommandUUID</key>
    <string>0001_InstallApplication</string>
    <key>Identifier</key>
    <string>com.apple.TVRemote</string>
    <key>State</key>
    <string>Installing</string>
    <key>Status</key>
    <string>Acknowledged</string>
    <key>UDID</key>
    <string>00008020-000915083C80012E</string>
</dict>
</plist>
```

## Topics

### Commands and responses

[`InstallApplicationCommand`](/documentation/DeviceManagement/InstallApplicationCommand)

The command to install a third-party app on a device.

[`InstallApplicationResponse`](/documentation/DeviceManagement/InstallApplicationResponse)

A response from the device after it processes the command to install a third-party app on a device.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)