Copy files off a USB drive, Windows → Mac
Get started · What DriveOff does · Use · Privacy · Requirements · For developers
- Download the latest release and unzip it.
- Move
DriveOff.appto/Applications. - Open it and grant disk access if prompted.
- Plug in your drive, pick a folder, go.
- Filenames just work on your Mac.
- Your drive is never touched.
- Hidden system files are skipped.
- See what failed and retry.
- Select the USB drive.
- Select a destination folder.
- Click Import.
Failed files appear in the Errors section with paths and reasons.
- DriveOff only reads from your drive.
- Files go straight to the destination you pick.
- Works offline.
- macOS 11 or later.
Build, test, and publish
Requires Apple Command Line Tools with Swift 6 and Make.
xcode-select --install
make # list commands
make run # run the native SwiftUI app
make test # run copy engine behavior checks
make check # lint, test, and build
make build # build the release executable
make package # create build/DriveOff.app (ad-hoc signed, local use)
make distribute # Developer-ID signing + notarize + staple (for releases)
make screenshot # render docs/screenshot.png from the current UIPublish a release with:
make release VERSION=1.0.0This lints, tests, and builds locally, then tags and pushes v1.0.0 to trigger
the GitHub Actions release workflow, which publishes DriveOff-1.0.0.zip and its
SHA-256 to a new release. Or by hand:
git tag v1.0.0
git push origin v1.0.0Unsigned builds work out of the box. To sign and notarize, add these repository secrets:
| Secret | Purpose |
|---|---|
DEVELOPER_ID_CERT_P12_B64 |
Developer ID Application certificate, base64-encoded .p12 |
DEVELOPER_ID_CERT_PASSWORD |
Password for the .p12 |
APPLE_ID |
Apple ID for notarization |
APPLE_TEAM_ID |
Apple Developer team ID |
APPLE_APP_PASSWORD |
App-specific password for notarytool |
Without notarization secrets the app is signed but not notarized; without the
certificate secrets it is unsigned. workflow_dispatch runs the same pipeline
without publishing, so you can test a branch first.
DriveOffApp— SwiftUI app.DriveOffCore— platform-independent filename and streamed-copy logic.
Made by JB Bouhier
