JustPaste.it

Field Report: Fixing Image Mover on macOS Sonoma (Gatekeeper & Full Disk Access)

Field Report: Image Mover (app) on macOS Sonoma

Objective was simple. I wanted a tiny utility to auto-sort screenshots into dated folders instead of letting my Desktop turn into digital compost. Found Image Mover (app) listed via OrchardKit references and figured it would save me from writing another half-baked Automator workflow.

Download went fine. Dragged it into Applications. Double-click.

macOS: “Image Mover can’t be opened because Apple cannot check it for malicious software.”

Classic Gatekeeper wall. Nothing dramatic. Apple documents this behavior pretty clearly in their support notes on safely opening apps:
https://support.apple.com/en-us/HT202491

What I expected: right-click → Open → confirm → done.
What happened: it launched, bounced once in the Dock, then vanished. No crash dialog. No report window. Just gone.

That’s when this stopped being a two-minute setup.


First assumption: notarization issue plus quarantine attribute conflict. I checked System Settings → Privacy & Security. The “Open Anyway” button appeared, so I clicked it. Same result. Bounce. Disappear.

Second attempt: Console.app. Filtered by process name. Found a sandbox denial related to folder access. Interesting. The tool’s whole purpose is moving files, so folder permissions matter.

Apple’s privacy permission model for macOS apps is explained here (worth rereading if you haven’t in a while):
https://support.apple.com/en-us/HT210595

The log line mentioned Desktop access denied. No prompt had appeared asking for permission. That’s the annoying part: sometimes unsigned utilities fail before macOS can even display the access dialog.

So I manually checked:

System Settings → Privacy & Security → Files and Folders.

The app wasn’t listed. Which means it crashed before registering properly.

Dead end number one.


Third attempt: remove quarantine flag entirely.

Terminal:

xattr -dr com.apple.quarantine /Applications/Image\ Mover.app

Relaunch.

This time it stayed open. Small, minimal window. No drama. Promising.

But when I triggered the “watch Desktop” feature, it silently failed again. Files didn’t move. No errors. Just… nothing.

Back to Console.

Now I saw something else: “Operation not permitted” when attempting to access ~/Desktop.

Right. Full Disk Access.

Some lightweight utilities need it if they’re not sandboxed correctly. Apple’s developer documentation on notarization and sandboxing explains why this friction exists (and why it’s not going away):
https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution

So I went to:

System Settings → Privacy & Security → Full Disk Access
Added the app manually. Enabled toggle.

Relaunch.

This time it actually worked. Screenshot dropped onto Desktop. Within two seconds, it moved into a folder named with today’s date. Exactly what I wanted in the first place.


For reference, I saved/bookmarked this macOS utility page because it listed the build I used and system notes for macOS versions:
https://proguntalk.com/file-management/44119-image-mover.html

That helped confirm I wasn’t grabbing some outdated binary meant for Catalina.


One more wrinkle: I’m on a MacBook Air M2 running macOS Sonoma 14.3. The binary is Intel-only. Rosetta installed automatically the first time I ran it, but I verified with:

file /Applications/Image\ Mover.app/Contents/MacOS/*

x86_64. No universal build. Performance is fine for a file mover, but it explains why the first launch took a few seconds longer than expected.

If the developer ever ships through the Mac App Store, this would all be cleaner. Distribution guidelines there enforce proper sandbox prompts and notarization:
https://apps.apple.com/us/genre/mac/id39

Right now, though, you’re basically doing manual trust negotiation with macOS.


What actually fixed it:

Not reinstalling.
Not rebooting.
Not clearing caches.

It was:

  1. Removing quarantine attributes.

  2. Manually granting Full Disk Access.

In that order.

If I had known from the start, I would have:

  • Moved the app to Applications immediately.

  • Cleared quarantine before first launch.

  • Granted Full Disk Access upfront.

Instead of poking around Console logs for half an hour pretending I enjoy that.

Now it runs quietly in the background and keeps my Desktop clean. No crashes. No permission errors. CPU usage sits at 0–1%. Exactly what a file utility should do.

Lesson learned (again): modern macOS security isn’t hostile, but it is layered. Gatekeeper. Quarantine. Privacy permissions. Architecture translation. If an app dies instantly, assume one of those layers blocked it — not that the tool itself is fundamentally broken.

And yes, I could’ve scripted the same thing in five lines of zsh. But sometimes it’s nice to let a tiny app handle it — once you convince macOS to trust it.