App Auto-Patch 3.6.0 RC5
App Auto-Patch 3.6.0 RC5 is now available! The AAP Wiki HAS been updated to include all changes. The profile manifests have also been updated.
Changes in 3.6.0 RC5
This is a summary of App Auto-Patch changes in this release: what changed, what's new, and what you need to know before upgrading. For a detailed, line-by-line development history, see CHANGELOG_DETAIL.md.
⚠️ Before you upgrade: Background Patch Closed Apps (below) is enabled by default and applies under both InteractiveMode 1 and InteractiveMode 2. If you are not ready for AAP to silently patch closed apps, set WorkflowBackgroundPatchClosedApps to false in your managed configuration before deploying this version. There are no other breaking changes in this release.
Changes specific to RC5
-
Profile Manifests have been updated with newly added managed preferences — Both the plist and json manifest files have been updated to include the new managed preference keys specific to 3.6.0 changes. After the final 3.6.0 release, the profile manifest will be submitted to the ProfileManifests repo to be updated for apps such as iMazing Profile Editor
-
Package installer — A pkg will be added to the release for easier deployment. If you need to make any customizations directly in the script, continue to use the previous deployment steps of the script instead of the package
- Details on deployment methods have been updated in the wiki
New Features and Changes
-
Background Patch Closed Apps — Under
InteractiveMode 1or2, AAP now silently installs updates for any app that isn't currently open, immediately after discovery and before any dialog is shown to the user. Apps that are open are left in the queue and presented to the user as before, so they can choose when to close them. If every pending update is resolved silently, no dialog appears at all. (InteractiveMode 0is unaffected — it already installs everything silently regardless of whether an app is open.)- Managed Preference Key:
<key>WorkflowBackgroundPatchClosedApps</key><true/>|<false/>— default:true
- Managed Preference Key:
-
Update Staging — Pending updates can now be pre-downloaded to a local staging folder before the user is ever prompted, making the actual install nearly instantaneous once approved. Staging always runs first (ahead of Background Patch Closed Apps and the user dialog), and later steps reuse the staged installer instead of downloading it a second time. Outdated or stale staged files are cleaned up automatically.
- Managed Preference Key:
<key>WorkflowStageUpdates</key><true/>|<false/>— default:false
- Managed Preference Key:
-
Discovery Frequency — Skip the app-discovery (scanning) phase on subsequent runs within a configurable time window. Useful when a user defers multiple times in a day — AAP won't re-scan every app each time, saving runtime, bandwidth, and system resources.
- Managed Preference Key:
<key>DiscoveryFrequency</key><integer>hours</integer>— default:0(always run discovery)
- Managed Preference Key:
-
Force Discovery CLI trigger — A new
--force-discoveryCLI trigger runs the app-discovery (scanning) phase immediately, even ifDiscoveryFrequencyhasn't elapsed yet. It's a one-shot trigger: it applies to the very next run only, then automatically clears itself — including when the run is relaunched via the LaunchDaemon (e.g. triggered remotely through Jamf), so it still takes effect even though the relaunched process doesn't see the original command-line flag.- CLI Trigger:
--force-discovery - Note: an administrator-disabled discovery workflow (
WorkflowDisableAppDiscovery) still takes priority —--force-discoveryonly bypasses theDiscoveryFrequencywait, not a hard disable.
- CLI Trigger:
-
Ignore DND Apps — Exclude specific apps from Focus/Do-Not-Disturb display-sleep-assertion detection, so background utilities that permanently hold a display assertion (e.g. Logi Options+, Amphetamine) don't indefinitely block interactive patching from proceeding. (#149)
- Managed Preference Key:
<key>IgnoreDNDApps</key><string>App1,App2,App3</string>— comma-separated app names, matched exactly as reported by macOS (including spaces)
- Managed Preference Key:
-
Update queue reporting — A new report file (
xyz.techitout.appAutoPatchReport.plist) tracks every currently-queued app (name, installed version, available version) in a Munki-styleItemsToInstallarray, making it easy for third-party reporting or inventory tools to surface pending updates for a Mac. (#194) -
Version details in patch dialogs — The deferral and hard-deadline dialogs now show each app's current and new version underneath its name, e.g. "Current Version: 128.0.6613.138 → New Version: 129.0.6668.59", so users know exactly what's changing before they install. (#146)
-
Startup & download reliability improvements (#223)
- AAP now waits for the Dock to become active (up to 2 minutes) before proceeding at startup, ensuring a full user session is established first.
- The swiftDialog download and code-signing verification now automatically retry up to 3 times before failing, reducing false failures on flaky networks.
-
Verbose log retention — The verbose log is now archived (instead of being deleted every run) once it grows past a size threshold, matching the existing rotation behavior of the main log, with a capped number of archives to prevent unbounded disk usage. (#222)
-
Banner image support — The Patching, Deferral, and Hard Deadline dialogs can now display a custom banner (image, URL, solid colour, or gradient) across the top in place of the plain text title, using swiftDialog's
--bannerimage/--bannertitle/--bannerheightoptions. If no banner image is configured, dialogs look exactly as before. (#205)- Managed Preference Key:
<key>BannerImage</key><string>Filepath|URL|colour=#hex|gradient=colour,colour</string>— leave unset to keep the standard text title - Managed Preference Key:
<key>BannerTitle</key><string>Text</string>— text shown inside the banner; falls back to the app title if left blank - Managed Preference Key:
<key>BannerHeight</key><integer>points</integer>— optional, overrides swiftDialog's default banner height - Note: activating a banner image hides the standard dialog icon, per swiftDialog's own behavior
- Not available on the compact discovery-scan and "all apps up to date" mini dialogs — they're too small to display a banner and always show the standard text title
- Managed Preference Key:
-
Apps found in
.Trash,/Applications (Parallels)/, and/Applications (Virtual Machines)/are now automatically ignored during discovery. (#221 #216) -
Staging / background-patch progress dialog for Full Interactive mode — Under
InteractiveMode 2, a small progress window now stays visible while updates are staged and closed apps are silently patched, instead of leaving users looking at an empty screen between the discovery dialog closing and the deferral/hard-deadline dialog appearing. -
"Install Now" confirmation prompt — Clicking
Install Nowon the deferral dialog now shows a small confirmation prompt before proceeding, so users don't accidentally close their apps and trigger installs with a single click. The confirmation shows a small countdown (default 15 seconds) so users know how long they have to respond — the buttons are clickable immediately (no brief delay before they respond), and if the countdown runs out without a response, AAP proceeds with the install by default (the user already asked to install, so no response is treated as confirmation rather than a change of mind). Choosing "No" returns to the deferral dialog, and that dialog's own countdown timer picks up right where it left off (it does not reset). This confirmation only applies to the deferral dialog — the hard-deadline dialog is unaffected, since it offers no choice to begin with.- Managed Preference Key:
<key>DialogTimeoutConfirmInstall</key><integer>seconds</integer>— default:15
- Managed Preference Key:
Fixes
- Fixed: the
RemoveInstallomatorPathmanaged preference could be forced toFALSEeven when explicitly set toTRUE(#214) - Fixed: the Support Team Website field wasn't hidden when its managed value was set to
hide(#213) - Fixed: the Workspace One MDM URL wasn't populating correctly for Slack webhook notifications (#208)
- Fixed: Support Team Name values containing umlaut characters populated incorrectly (#204)
- Fixed: Installomator version/date now displays correctly in logs when the Installomator self-updater is disabled (#206)
Full Changelog: Version_3.5.0...Version_3.6.0_RC5