Description
Jamf School uses in-house applications to send packages to managed computers.
This article:
outlines the in-house application deployment process
explains the installation statuses for in-house applications
troubleshooting tips for in-house applications
In-House Applications Deployment Process
Jamf School uses the following procedure to deploy packages via in-house applications and determine their installation status:
An in-house application is assigned to a macOS devices.
This can be done with a group or via a user assignment to a single device.
Jamf School generates a command to trigger the installation and when the device checks in the command is sent to the device.
The command contains information on where the device can find the needed package but doesn't directly provide the package itself.
The device will either throw an error or respond with and "Acknowledged" status to the command to signal it is going to attempt the installation.
The device uses the information in the command to download and the package and once downloaded it attempts the install.
Devices to not report back status of the installation, so if the device runs into an error during installation this will not be known to Jamf School.
If the devices "Acknowledged" the command Jamf School will attempt to monitor its installation status by sending the
InstalledApplicationList
command every 15 minutes and looking for the application in the list the device provides.If the application is seen in the response to the command it is marked as Installed.
If the application is not seen in the response another
InstalledApplicationList
command is scheduled for 15 minutes later.
This process repeats until application is seen as installed.
Note: For applications that do not contain an application an empty application with a unique identifier is inserted into the package so that installation can be tracked. Though, if a package is uploaded as a Raw Package this will not be the case.
Installation Statuses and Troubleshooting
Pending
The InstallApplication
command for the application has been queued and will be sent to the device the next time it checks in with Jamf School.
If you are seeing devices hang on the Pending status for an unusually long amount of time check that the device has a network connection that it can use to communicate with Jamf School.
Looking at the Activity Log for the device is a great way to see the last time the device checked in with Jamf School and executed commands.
NotNow/Pending
The device checked in with Jamf School and received the InstallApplication command but does not currently want to carry out the installation. The installation status will not change to show NotNow, commands that receive a NotNow response will return to pending and Jamf School will send the command again the next time the device checks in.
You can see if a device is responding with NotNow by looking at the devices Activity Log.
If you are having trouble with repeated NotNow responses, try restarting the device.
For more information on the NotNow response see the Apple Developer Documentation Handling NotNow Status Responses.
Installing
The device has received and acknowledged the InstallApplication
command and is attempting to download and execute the package.
If you are seeing an application with the Installing status for longer than expected start your investigation by checking:
If the device has the Require admin password to install or update apps settings applied to it in one of its configuration profiles.
This setting is located in macOS configuration profiles within the Restrictions payload under the Apps tab.
The settings is only available for devices running macOS version 10.15 or earlier, when applied to devices running newer versions of macOS it will cause package installation to get denied.
Make sure to disable this settings in your restrictions for any device running macOS versions newer that 10.15.
If the device ran into an error while downloading or executing the package.
Check the install.log file to see that install was attempted and if it was if there was an error during installation.
The install.log file can be found in:
/private/var/log/install.log
or by running the commandcp /private/var/log/install.log ~/Desktop/This_Is_The_Install.log
in Terminal to generate a copy of the file on the Desktop called 'This is the install.log'.If you don't see an install attempt in the install.log file, a System Diagnostic can be generated and the logs can be checked for an error during the download.
Tips for reading the install.log
Tips for reading the install.log
When reading an install.log file all installations will be begin with a line like the following to help you find installation attempts more easily:
2024-06-13 19:56:58-05 <device_name> installd[554]: PackageKit: ----- Begin install -----
You can cross reference these time stamps in the log with your device's Activity Log in Jamf School to determine if it is the install your are looking for.
In the next few lines after the
Begin install
you will also see identifying information for that package that is about to install.
Installed
The device received and acknowledged the InstallApplication
command and the application is included in the subsequent checks of the InstalledApplicationList
command.
If you are seeing the Installed status but aren't seeing the application on your device this could mean:
Your package may be installing the application to an unexpected location.
Download your package from Jamf School and use a tool like Suspicious Package to inspect the contents and confirm the destination locations for the files are correct.
Your package may be missing its .app file resulting in the addition of the customer application for installation tracking.
If this is the case the custom application will cause Jamf School to think the application is installed when it isn't because it is not actually included in the Package.
Double check that your package contains the
.app
file for the application you are trying to install.
Failed
The device ran into an error and did not acknowledge the command, instead it sends back an error message to Jamf School, with a message about the issue it encountered.
View the install attempt in the Activity Log to see what error the device provided.
Failed installations will not retry their installs automatically, to retry failed installs (queue a new
InstallApplication
command) do the following:In Jamf School navigate to Apps > Inventory.
Search for the app that failed and check the box.
Click the Retry button and select the option for Retry to Install on Missing.