Uninstall and recovery
If an install gets wedged — stale daemon registration, partial Installomator deploy, leftover state from an upgrade — a clean uninstall script ships inside the app bundle:
sudo "/Applications/App Auto-Patch.app/Contents/Resources/uninstall.sh"Cleanest path: open AAP and click Settings → About → Reset
Helper before running the script. The script can stop the
LaunchDaemon and delete every file App Auto-Patch put on disk, but it
can’t call SMAppService.unregister() (that API only runs from
inside the running .app), so SMAppService’s Background Task
Management record can otherwise persist across the uninstall and
bleed into the next install. Reset Helper does the proper
unregister + register cycle and leaves BTM clean. If you skip this
step, the next install will still auto-heal itself on first
launch — the GUI’s isOperational check cross-references launchd’s
actual loaded-daemon list and triggers a re-registration when
SMAppService is lying about its .enabled state — it just costs
one extra approval prompt.
It stops the root helper LaunchDaemon, removes
/Library/Application Support/AppAutoPatch, removes any leftover
/Library/LaunchDaemons/xyz.techitout.appAutoPatch.roothelper.plist,
removes per-user preferences and logs for every user on the Mac, and
removes the App Auto-Patch.app bundle itself (and any pre-rename
AppAutoPatch.app left over from build ≤ 35), and removes staged
installers in /private/tmp/AAPStage. After that, reinstall
the latest .pkg for a true fresh first-run.
Useful flags:
--keep-app— wipe state but keep/Applications/App Auto-Patch.appin place. Re-launching the app starts the first-run wizard from scratch.--quiet/-q— suppress non-error output.--help— show the full options list. If the executable bit ever gets stripped, invoke throughzshexplicitly:
sudo /bin/zsh "/Applications/App Auto-Patch.app/Contents/Resources/uninstall.sh"The script is safe to run when AppAutoPatch is partially or not installed — every step is guarded by an existence check.
