-
PhotoPhetch v1.0.1 Stable
released this
2026-08-02 11:32:00 -07:00 | 0 commits to main since this releasePhotoPhetch v1.0.1 — Packaging Fixes
Bug fixes
- Fixed crash on launch when installed as a .app bundle: bundled JVM was missing required modules (java.naming, java.xml, java.desktop, and others needed by logback and Kotlin coroutines)
- Fixed 'exiftool not installed' false warning when launched as .app: the bundled app does not inherit the shell PATH, so Homebrew tools in /usr/local/bin and /opt/homebrew/bin were not found. ExternalTools now searches common Homebrew paths directly
- Fixed adb not found when launched as .app: same PATH issue, now resolved lazily using Homebrew path search
- Fixed EXIF verification false warnings on Android: Samsung and other Android manufacturers were incorrectly flagged as 'Origin unknown'. Any non-blank EXIF Make is now considered a verified camera original; only absent Make triggers the warning
- Preserve folder structure now sticky: the toggle in the Import Configuration screen now saves your preference and remembers it between imports
Downloads
-
PhotoPhetch v1.0.0 Stable
released this
2026-08-01 21:16:34 -07:00 | 5 commits to main since this releasePhotoPhetch v1.0.0 — First Release
PhotoPhetch is a macOS desktop app for importing photos from Android and iPhone phones into a PhotoPhile staging directory.
Features
Android (Samsung, Pixel, and others)
- Connects via ADB — scans all DCIM and Pictures subfolders automatically
- Smart filtering: excludes Screenshots, Screen Recordings, WhatsApp, Telegram, and other app folders
- Folder structure preserved on import (Camera/, Screenshots/, etc.)
- Thumbnails loaded and cached locally
iPhone
- Connects via pymobiledevice3 (AFC protocol) — works on iOS 17+, no gphoto2 needed
- Photos classified by filename pattern: Camera, Edited, Videos, Screenshots
- Live Photo detection: companion MOV files hidden from grid, HEIC stills show LIVE badge
- Atomic import/delete: HEIC and its MOV companion treated as a unit
- Thumbnails batch pre-fetched newest-first and cached permanently
Import flow
- Browse photos in a two-panel layout: folder jump list on left, dense photo grid on right
- Date markers on first photo of each day; +/- buttons to adjust grid density
- Tap + on any photo to preview full-size (HEIC converted to JPEG via sips)
- Select individual photos, entire days, or entire folders
- SHA-256 copy verification; size-based verification when remote hash unavailable
- EXIF Make verification via exiftool: flags photos with absent Make as unverified
Verify screen
- Per-file status: green (verified), yellow (origin unknown), red (failed)
- Filter by: All / OK / Unverified / Failed
- Thumbnail chip on each row — click to preview
- Soft-remove any file with undo before committing
- Single Done button commits all actions: delete from phone + clean staging
Settings
- Staging path with native macOS folder picker
- Folder name template with {date} and {device} tokens
- Auto-increments folder name if it already exists (e.g. 2026-07-28_iPhone15Pro_2)
- Persists HEIC conversion, folder structure, and other preferences
Requirements
- macOS (Intel or Apple Silicon)
- Java 17+
- ADB for Android: brew install android-platform-tools
- pymobiledevice3 for iPhone: brew install pipx && pipx install pymobiledevice3
- exiftool for EXIF verification (optional): brew install exiftool
Downloads