Deploy with Jamf Pro, Kandji or another Apple MDM (macOS)
JodaPrint.pkg is a universal installer (Apple silicon and Intel, macOS 13 or later). It installs:
- the agent in
/Library/JodaPrint/bin, linked as/usr/local/bin/jodaprint-agent; - the LaunchDaemon
io.jodaprint.agent; - the menu bar LaunchAgent
io.jodaprint.tray; - a local certificate authority, trusted in the System keychain. It is created on each Mac; no key ships in the pkg.
The installer reads the activation code from a configuration profile, so the code is not stored in a script. Deploy in this order:
1. Configuration profile with the activation code
The pkg reads these keys from the preference domain io.jodaprint.agent:
| Key | Type | Example |
|---|---|---|
ActivationCode | string | KJ74-PX9Q |
Channel | string, optional | stable or beta |
CloudURL | string, optional | only for a self-hosted cloud |
- Jamf Pro: Configuration Profiles → New → Application & Custom Settings → Upload. Preference domain
io.jodaprint.agent; property list:<dict><key>ActivationCode</key><string>KJ74-PX9Q</string></dict> - Kandji: Library → Add → Custom Profile, and upload the example profile
io.jodaprint.agent.mobileconfigfrom the JodaPrint installers (replace the code and the twoPayloadUUIDvalues withuuidgenoutput). - Mosyle, Intune for Mac and others: a custom configuration profile with the same example file.
2. Allow the background items (recommended)
macOS 13 and later tell users about new background items, and users can switch them off. A Managed Login Items payload (com.apple.servicemanagement) keeps JodaPrint enabled and silences the notice:
| Rule type | Rule value |
|---|---|
| Label | io.jodaprint.agent |
| Label | io.jodaprint.tray |
In Jamf Pro this is Configuration Profiles → Login Items → Managed Login Items. In Kandji, it is the Login & Background Items library item.
3. The package
- Jamf Pro:
- Settings → Packages → New, upload
JodaPrint.pkg. - Create a Policy with the package (Action: Install), trigger Recurring Check-in or Enrollment Complete, execution frequency Once per computer, scoped to the target Macs.
- Settings → Packages → New, upload
- Kandji: Library → Add → Custom App, installer type Installer package, upload
JodaPrint.pkg. Choose "Install once per device". - Intune for Mac: Apps → macOS → macOS app (PKG), or an unmanaged pkg.
Install the profile before the package. If the package ran first, run sudo jodaprint-agent activate <code> through a policy or script.
Without a profile
Some tools only copy files and run an installer. They can place a file named jodaprint-activation-code (the code on one line) in the same folder as JodaPrint.pkg, then run:
sudo installer -pkg JodaPrint.pkg -target /
For a single Mac, the dashboard's one-line command writes the code to /tmp/jodaprint-activation-code. The installer deletes that file once it has read the code.
Troubleshooting
- The install log is
/Library/Logs/JodaPrint-install.log. It shows each step and whether activation worked, never the code. sudo jodaprint-agent status.- Agent logs:
/Library/Application Support/JodaPrint/logs. - Upgrades: deploy the newer pkg the same way. The service is stopped, replaced and started again. The activation and data are kept.