You can deploy internal applications to your device fleet by uploading internal applications as local files in the Workspace ONE UEM console.

  1. Navigate to Resources > Apps > Native > Internal and then select ADD > Application File.

  2. Select UPLOAD and then select Choose File. Browse for the application file on your system. Select the .dmg, .pkg, or .mpkg file to upload.
  3. Upload the required application metadata file (.plist).

    To create a metadata file, download and install the VMware Workspace ONE UEM Admin Assistant Tool to your macOS computer.

  4. Complete the Images tab.
    Setting Description
    Mobile Images Upload or drag application image to display in the AirWatch Catalog for mobile devices.
    Tablet Images Upload or drag the application image to display in the AirWatch Catalog for tablets.
    Icon Upload or drag the application image to display in the AirWatch Catalog as the icon for the application.
  5. Configure Scripts settings to run the installation, uninstallation, and verification of the application. By providing pre-install scripts and post-install scripts, you can perform additional configuration tasks or install additional items without the need of repacking the applications or software. Simply paste the script and Workspace ONE UEM formats it to be used by Munki.
    Setting Description
    Pre-Install Script Define a pre-install script to run before attempting installation.
    Post-Install Script Define a post-install script to run after a successful installation.
    Pre-Uninstall Script Define a pre-uninstall script to run before an attempted uninstall.
    Uninstall Method

    Select from the drop-down and customize the behavior of the uninstall methods. The options are:

    • Remove Packages
    • Remove Copied items
    • Remove app
    • Uninstall script
    Post Uninstall Script Define a post-uninstall script to run after a successful uninstall.
    Failure of the pre-install script cancels the installation attempt and failure of the post-install script logs errors, but the install is considered complete.
    With some software, you have to configure what exactly defines a successful install or uninstall. Munki allows the software configuration through setting an Install or Uninstall Check Script.
    Install Check Script If present, the script runs to determine if the application must be installed. A return code of 0 means install is needed, any other return code causes install to be skipped.
    Uninstall Check Script If present, the script runs to determine if the application must be uninstalled. A return code of 0 means uninstall is needed, any other return code causes uninstall to be skipped.
  6. Configure the Deployment tab settings.
    Setting Description

    Activate Blocking Applications to define any applications or processes that might block the clean installation of a managed macOS application.

    Defined applications that must be closed before the installation to prevent those applications from being quit unexpectedly before saving. Additionally, the end users are notified on the device by the Workspace ONE Intelligent Hub to close the defined applications.

    Deactivate Blocking Applications to override any blocking behavior and continue with the installation. If there is an app open which blocks the installation, it will be automatically closed.

    List the blocking applications that must be closed. If the app is in the /Applications/ folder, it can be defined as the app name and the path is automatically discovered. For example, "Firefox" or "".

    Optionally the full path to the exact process can be used, but is not advised if end users do not can easily quit the app. As a result you must not block any faceless background apps or helper apps.

    Restart Action

    Select the restart action for the application. The available actions are:

    • None
    • Require Shutdown
    • Require Restart
    • Recommend Restart
    • Require Logout
    Condition Define the condition for the application to be installed on the device.
    Desired State Management

    Currently when installing macOS software, administrators can activate or deactivate the Desired State Management settings based on the business needs. Desired State Management is enabled by default to enforce the application management during the macOS software installation.

    If activated, and if the end user deletes the app, the application is automatically reinstalled on the next Hub sync.

    If deactivated, and if the end user deletes the app, the application is not automatically reinstalled, unless pushed from the Workspace ONE UEM console or Catalog.

  7. Configure the Terms of Use tab.
  8. Terms of use states specifically how users are expected to use the application. When the application pushes to devices, users view the terms of use that they must accept to use the application. If users do not accept, they cannot access the application.
  9. Select Save & Assign.

Using macOS Software Distribution Scripts for additional Configuration

Use macOS software distribution scripts to perform additional configurations or validation of tasks in the Script section of the Add or Edit Application page of the console.

By inserting scripts, you can:

  • Avoid repacking installers by using pre-install scripts.
  • Avoid post-install user prompts by scripting additional configurations.
  • Perform validation.
  • Customize the uninstallation.

The following table provides exit code behavior for each script type.

Script Type Exit Code 0 Behavior Other exit Code Behavior
Pre-Install Continue Install Skip Install
Post-Install Successfully Installed Installed Successfully with Warnings
Pre-Uninstall Continue Uninstall Skip Uninstall
Post-Uninstall Uninstall Successfully Uninstall successfully with Warnings
Install Check Script Install is Needed Skip Install
Uninstall Check Script Uninstall is Needed Skip Uninstall

macOS Software Distribution Conditions

macOS software distribution conditions are a set of attributes provided by the integrated open-source Munki library for determining the install applicability. Conditions are defined at a per-application level and are evaluated before download and install of the software.

There are some built-in conditions supported by Munki.

Conditions are written in the format:

machine_type == "laptop" AND os_vers BEGINSWITH "10.7"

Conditional Comparison Attributes

Attribute Type Description Example Comparison
hostname String Hostname hostname=="Lobby imac"
arch String Processor architecture. For example: 'powerpc', 'i386', 'x86_64' arch=="x86_64"
os_vers String Full OS Version. For example: "10.7.2" os_vers BEGINSWITH "10.7"
os_vers_major Integer Major OS Version. For example: '10' os_vers_major == 10
os_vers_minor Integer Minor OS Version. For example:'7' os_vers_minor == 7
os_vers_patch Integer Point release version. For example: '2' os_vers_patch >=2
machine_model String 'MacMini1,1', 'iMac4,1', 'MacBookPro8,2' machine_model == "iMac4,1"
machine_type String 'laptop' or 'desktop' machine_type == "laptop"
ipv4_address Arrays of string Contains current IPv4 addresses for all interfaces. ANY ipv4_address CONTAINS '192.168.161.'
munki_version String Full version of the installed munkitools munki_version LIKE '*0.8.3*'
serial_number String Machine serial number serial_number =="W9999999U2P"
date UTC date string Date and time. Note the special syntax required to cast a string into an NSDate object. date>CAST("2013-01-02T00:00:00Z", "NSDATE")