Skip to content

iCloud GUI 1.2

Choose a tag to compare

@drtechventures drtechventures released this 28 Aug 04:52
· 2 commits to main since this release
1685e3f

Download your iCloud photos to a Mac or a NAS, at full resolution, using Apple's own PhotoKit framework. Your Apple ID password is never requested or stored, and Advanced Data Protection can stay on.

Signed and notarised by Apple, so it opens without any Gatekeeper warnings.

Installing

This release ships as a disk image. Open iCloud-GUI.dmg and drag iCloud GUI onto the Applications shortcut inside.

Keeping it in /Applications rather than running it from ~/Downloads matters here: macOS ties the Photos permission to where the app lives and how it is signed, so an app that moves around gets asked for access again.

What's new in 1.2

The interface has been rebuilt around the window toolbar, and the app now adopts the Liquid Glass design on macOS 26 and later.

  • Liquid Glass. The app was compiling against the current SDK but telling macOS it was not: SwiftPM stamps the binary's recorded SDK version from the deployment target, so the linked-on-or-after check that gates the new design saw 14.0 and served the old appearance. The build now stamps the real SDK version while the deployment target stays at macOS 14 — macOS 14 through 25 look exactly as before.
  • Controls moved into the toolbar. The title bar was empty while four rows of controls were stacked under the grid. Grouping, sort order, the destination, File Options and Download are now in the toolbar, and what is left below the grid is a single status line.
  • The window has a title again — the selected album and its item count.
  • Filter the sidebar. A search field above the album list.
  • One destination menu replaces the separate Destination button, path button and rescan button.
  • Only new is now Only download what is missing, in File Options. The Download button already said Download 1,247 New when it was on.
  • Check for Updates…, in the iCloud GUI menu. Deliberately manual — a background updater would tell a server this Mac is running the app every few hours, which would make the app's own privacy claim untrue. It sends nothing about you or your library, and installs nothing.
  • Releases ship as a disk image instead of a zip.
  • The window opens wide enough to use — 1280×840, and never narrower than 1180.
  • Thumbnail size is remembered between launches.
  • Item counts are written with thousands separators.

Fixes

  • ./run.sh could silently run the previous build. build.sh deletes the app bundle before reassembling it, but a running instance survives that — macOS keeps the inode alive while the process holds it open — and open then activates that stale process rather than launching what was just built. Same pid, old binary, running against a bundle whose resources no longer exist, which is why it would later vanish with no crash report. build.sh now quits an instance running from its own bundle first, targeted by path so a copy in /Applications is left alone. Affects contributors building from source, not people installing the release.

  • Lifecycle breadcrumbs in the macOS unified log. A launched line with no terminating normally after it is how you tell "killed" from "quit" — a distinction no crash report can make, because being killed is not a crash.

    log show --predicate 'subsystem == "com.drtechventures.icloudgui"' --last 1h --style compact
    

Requirements

  • macOS 14 or later
  • Photos signed into iCloud with iCloud Photos turned on

Still true, and worth repeating

  • No Apple ID password is ever requested, entered, or stored
  • Advanced Data Protection can stay enabled
  • No analytics, telemetry, crash reporting, or third-party dependencies

Full changelog: https://github.com/DR-Tech-Ventures/icloud-gui/blob/main/CHANGELOG.md