Skip to main content

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:

KeyTypeExample
ActivationCodestringKJ74-PX9Q
Channelstring, optionalstable or beta
CloudURLstring, optionalonly 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.mobileconfig from the JodaPrint installers (replace the code and the two PayloadUUID values with uuidgen output).
  • Mosyle, Intune for Mac and others: a custom configuration profile with the same example file.

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 typeRule value
Labelio.jodaprint.agent
Labelio.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:
    1. Settings → Packages → New, upload JodaPrint.pkg.
    2. 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.
  • 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.