Learn about Kandji's Custom App Feature.
Kandji allows you to upload and deploy custom apps to your enrolled Mac devices. Add Custom App library items to ensure that all required applications are ready for your users.
Kandji supports several different installer types:
- .PKG: Kandji also supports compressed PKG and MPKG files.
- .ZIP: When using a ZIP file, Kandji allows you to specify where the contents of that file should be decompressed to.
- .DMG: When using a DMG file, Kandji attempts to extract its contents to the /Applications folder. If your DMG contains a PKG, you should first extract the PKG and upload that to Kandji instead.
Kandji's maximum file upload size is 5 GB.
Depending on the app you wish to deploy, you can specify whether Kandji should install it once or continually monitor and ensure that it is installed.
- Install once per device: Kandji will install the custom app once. If the app is removed from the Mac, it will not be reinstalled automatically. For example, a software patch shouldn't be run continuously.
- Audit and enforce: Kandji will run the audit script and ensure that the script passes (exits 0) at each check-in (including before the first install). Should the audit script exit anything other than 0, Kandji will reinstall the application automatically.
- Install on demand from Self Service: The item will only be offered as an optional install from Self Service. After the item is executed, the Install button will be relabeled Reinstall.
Audit Script Considerations
Using an audit script gives you control over what qualifies as a Pass. Should the app be in a specific location? Have a particular checksum? Be on a certain version? All of these checks can be done in an audit script.Example: The audit script below would check for the presence of an app; if it is not present, the script would prompt Kandji to reinstall it.
if [ -e "$APPPATH" ]; then
Pre- and Post-Install Scripts
Adding a pre- or post-install script allows you to further customize the install process for custom apps. Add a pre-install script to perform an action such as removing another app that is being replaced. A post-install script can do things such as configuring the custom app that was just installed.
Self Service Considerations
There are important considerations that should be understood when leveraging custom apps with Self Service.
- When a custom app's enforcement option is set to Install and continuously enforce or Install once per device, you can still opt to show this item in Self Service. This may be useful if users need the ability to reinstall the software.
- When a custom app's Enforcement option is set to Install on demand from Self Service, the app will not be installed until the user installs the application from Self Service.
- When installing via Self Service, the latest version of the app will be installed.
- Kandji will automatically take over management of non-App Store licensed apps if set to Install on demand from Self Service (as long as the bundle ID of the existing application matches that of the Apps and Books version). Your global or per-app update settings will be respected.
Some applications require a reboot after being installed before they will operate correctly. Allowing Kandji to trigger the restart ensures that the install restarts to ensure proper functionality. Check the Restart after successful install box to have Kandji restart the computer after the custom app is installed.
Users will be given a 30-minute countdown before the restart occurs.
The status tab within a Custom App library item allows you to easily view which Mac devices are waiting to have the app installed, which ones have had successful installations, and which ones are reporting installation errors.
To deploy your custom app to enrolled Mac computers, add it to a Blueprint. All Mac computers assigned to that Blueprint will receive the custom app during their next check-in.
Use the following guides to learn how to use the Custom App feature inside Kandji.
Note on Zip file uploads
If the zip file contains a package and you see a Gatekeeper notification warning on a Mac during the custom app install process, you can run the following command from a Terminal session on the package to clear the quarantine bit before zipping and uploading the install file to Kandji.
xattr -dr com.apple.quarantine "/path/to/package.pkg"