You can deploy internal applications to your mobile network by upload internal applications with local files in the Workspace ONE UEM console.
- Navigate to Resources > Apps > Native > Internal and select Add Application.
- Select Upload > Local File and browse for the application file on your system. Select the .dmg, .pkg, or .mpkg file to upload.
- 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.
- 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.
- 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.Note: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.
- Configure the Deployment tab settings.
Setting Description Blocking
Enable 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.
Disable 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 "Firefox.app".
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.
Select the restart action for the application. The available actions are:
- 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 enable or disable 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 enabled, and if the end user deletes the app, the application is automatically reinstalled on the next Hub sync.
If disabled, and if the end user deletes the app, the application is not automatically reinstalled, unless pushed from the Workspace ONE UEM console or Catalog.
- 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
|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")|