English | Deutsch
Modern DMG creation and conversion tool for macOS with advanced icon support.
- DMG Creation: Create DMGs from folders or empty images
- DMG Conversion: Convert between read-only (UDZO) and read-write (UDRW) formats
- Icon Support: Automatically extract and apply app icons to DMGs
- Password Protection: Full encryption support for secure DMGs
- Modern UI: Native SwiftUI interface with dark mode support
- File System Options: Support for APFS and HFS+J formats
- macOS 13.0 or later
- Swift 5.9 or later
# Build for debug
swift build
# Build for release
swift build -c release# Build with automatic .app timestamp update for development
./dev-build.sh
# Also works with swift build arguments
./dev-build.sh -c releaseThis updates dist/dmgTweak.app. The bundle timestamp is touched so you can see at a glance if it's the current build.
# Full build with linting and formatting
./build.sh
# Quick build without dependencies
./build.sh --no-deps --no-lintThe build script will:
- Install/check dependencies (SwiftFormat, SwiftLint)
- Format and lint the code
- Compile with Swift Package Manager
- Update the dist app bundle (binary name inside bundle:
Contents/MacOS/dmgTweak) - Keep outputs only in
dist/
Run locally:
open dist/dmgTweak.appThe app is built with a clean, modular architecture:
- dmgTweakApp.swift - Main SwiftUI app and UI
- DMGOperations.swift - Core DMG creation and conversion
- DMGIconOperations.swift - Icon-specific operations
- IconHandler.swift - Icon extraction and application
- MountManager.swift - DMG mounting/unmounting
- UIComponents.swift - Reusable UI components
- FilePickerManager.swift - File selection utilities
- ✅ Modular architecture with 13 focused modules
- ✅ Swift Actors for safe concurrency
- ✅ Comprehensive error handling
- ✅ Memory management with automatic cleanup
- ✅ SwiftLint compliant (95%+ violations resolved)
Apache License 2.0. See LICENSE.
- Initial public release under Apache-2.0
- SavePanel: defaults to
~/Downloads, suggests current Volume name - Create flow: shows SavePanel on click; replaces existing file after confirmation
- Resets: clears selected paths and resets Volume ("Image") after creation; clears inputs on mode switch
- Locale: Info.plist set to German (dialogs in Deutsch)
- Bundle: unified binary name
Contents/MacOS/dmgTweak - Tooling: SwiftLint/SwiftFormat configured; backup file excluded from lint
- Clone the repo:
git clone https://github.com/henosch/dmgTweakApp.git && cd dmgTweakApp - Build:
./dev-build.sh(recommended) orswift build - Run:
open dist/dmgTweak.app
Language
- UI follows system language (Deutsch/English).
- Override via Terminal:
- English:
defaults write de.free.dmgTweak AppleLanguages -array en - German:
defaults write de.free.dmgTweak AppleLanguages -array de - Reset:
defaults delete de.free.dmgTweak AppleLanguages
- English:
English UI
German UI



