SMB
| Protocol | SMB 2 / SMB 3 |
|---|---|
| Authentication | Username + password |
| Domain | Optional domain / workgroup |
| Not supported | SMB1 |
Supports Backup to External Storage, SMB, WebDAV, SFTP, S3-Compatible Buckets, and OneDrive.
Open Source on GitHub.
External Storage, SMB, WebDAV, SFTP, S3-Compatible Buckets, or OneDrive.
Backup, Download, or Complete by month.
Sync the Remote Index, Then Pause or Resume When Needed.
We believe privacy matters as much as ownership.
One-Time Purchase. No Subscription.
| Item | Free | Pro |
|---|---|---|
| Price | US$7.99 About 2 Coffees | |
| Foreground Backup | ✓ | ✓ |
| Node(s) | 1 | Unlimited |
| Automatic Background Backup | ✓ | |
| PiP Progress | ✓ | |
| Focus Mode | ✓ |
Watermelon Backup is open source, and you can compile the app directly in Xcode. The in-app purchase supports ongoing development, maintenance, and updates so the app can keep serving users well.
It does not renew. Pro is a one-time purchase and stays available for life. On a new device, use Restore Purchase to restore your entitlement.
A Node is a storage connection you add in the app. It can be External Storage, SMB, WebDAV, SFTP, an S3-Compatible Bucket, OneDrive, or a Watermelon Link session.
Credentials required by Nodes are stored in iOS Keychain and are not written to diagnostic logs. For OneDrive, tokens are managed by MSAL.
Backup writes original photos and videos from this device to the current Node; Download imports backed-up items from the Node into Photos where possible; Complete backs up first, then downloads: it sends local items missing on the Node, then tries to bring remote-only items back into Photos.
Watermelon Backup saves Live Photo resources as a still image and a paired video, then uses the Photos import path when restoring them. The result depends on the required resources being present.
Backup is based on original resources rather than preview exports. Capture time and embedded metadata such as EXIF are handled through those resources and the iOS Photos import path.
This can be normal and does not automatically mean photos or videos are missing. Watermelon Backup backs up by month and uses content hashes to detect duplicates. If the same original content appears more than once in a month, the remote backup may keep one actual file and the backup manifest records the related items. Remote file counts and storage usage can therefore be lower than local totals; small manifest/index files and each storage provider's accounting can also make the size display differ.
Yes. Turn on Allow iCloud Photo Access in the app settings so Watermelon Backup can fetch iCloud originals when needed.
Check the External Storage format and the access state in Files. See Apple Support for details.
Please email us. See Contact for contact details. If possible, include exported logs.
| Protocol | SMB 2 / SMB 3 |
|---|---|
| Authentication | Username + password |
| Domain | Optional domain / workgroup |
| Not supported | SMB1 |
| Protocol | WebDAV over HTTP / HTTPS |
|---|---|
| Authentication | Basic auth |
| HTTP | Supported (LAN only) |
| HTTPS | Supported |
| Methods used | PROPFIND, PUT, GET, DELETE, MKCOL, MOVE, COPY |
| Metadata | Best-effort modification-time update via PROPPATCH |
| Not supported | OAuth, Digest auth, client certificates |
| Protocol | SFTP over SSH |
|---|---|
| Authentication | Password or OpenSSH private key |
| Private keys | OpenSSH Ed25519 and RSA private keys |
| Passphrase | Supported |
| Host-key trust | SHA256 host-key fingerprint pinning |
| KEX | curve25519-sha256, [email protected], ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521 |
| Compatibility KEX retry | diffie-hellman-group14-sha1, diffie-hellman-group14-sha256 |
| Host keys | ssh-ed25519, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521 |
| Compatibility host-key retry | ssh-rsa |
| Ciphers | [email protected], [email protected] |
| Compatibility cipher retry | aes128-ctr |
| Not supported | ECDSA private-key login, CBC-only servers, 3DES-only servers, diffie-hellman-group1-only servers |
| Protocol | S3-compatible API |
|---|---|
| Signing | AWS Signature Version 4 |
| Authentication | Access Key ID + Secret Access Key |
| Endpoint | Custom HTTP / HTTPS endpoint |
| HTTP | Supported (LAN only) |
| HTTPS | Supported |
| Bucket addressing | Path-style and virtual-hosted-style |
| Region | Manual input, with inference for common providers |
| Listing | ListObjectsV2 |
| Upload | Single-part upload and multipart upload |
| Copy | Server-side copy and multipart copy |
| Protocol | Microsoft Graph API |
|---|---|
| Authentication | Sign in with Microsoft (MSAL) |
| Account Type | OneDrive Personal |
| Permission Scope | Files.ReadWrite.AppFolder |
| App Folder | Backups are stored in Watermelon's OneDrive app folder; files outside it are not accessible. |
| Listing | Microsoft Graph children listing with pagination |
| Upload | Direct upload under 10 MiB and resumable upload sessions |
| Token Handling | Account identity is stored in Keychain; access and refresh tokens are managed by MSAL. |
| Not supported | OneDrive for Business, SharePoint-backed drives |
| Limit | Availability depends on Microsoft account state, quota, throttling, and network connectivity. |
| Type | Local / external filesystem via iOS Files |
|---|---|
| Authentication | iOS security-scoped access |
| Works with | External drives and compatible Files providers |
| Capacity | Reads available / total capacity when exposed by the provider |
| Limit | Availability depends on iOS maintaining access to the selected volume or provider |
| Firebase Analytics Without Ad ID Support | App health analytics without IDFA |
|---|---|
| Firebase Crashlytics | Crash reports and reliability diagnostics |
| Microsoft Authentication Library (MSAL) | Microsoft account sign-in and token cache for OneDrive |
| AMSMB2 (fork) | SMB connection, share browsing, and SMB file operations |
| Citadel (fork) | SFTP over SSH, host-key fingerprint handling, and SFTP file operations |
| WebRTC (fork) | Browser Link peer connection and data-channel transfer |
| GRDB | Local SQLite database for backup indexes, manifests, and cache validation |
| Kingfisher | Image loading and local UI cache for the photo interface |
| SnapKit | Interface layout |
| MarqueeLabel | Scrolling text labels |