- Copy only (right-click -> Copy): write to clipboard without auto-pasting or hiding the window - Color swatches: hex/rgb/hsl entries show a preview chip - SQLite WAL + synchronous=NORMAL so the UI can read while the clipboard poller writes - Memoize list rows (React.memo) so selection/focus changes don't re-render every row's preview - Add docs/GUIDE.md (living install + usage doc), docs/SHARING.md, docs/TESTING.md, docs/LAUNCH-AT-LOGIN.md, docs/PRODUCT.md, CHANGELOG.md, ROADMAP.md - Add homelab Gitea Actions CI (.gitea/workflows/ci.yml) + gitleaks allowlist - Bump version to 0.2.0
3.7 KiB
Sharing maCopy with someone else
Where the app lives on your Mac
| What | Path |
|---|---|
| Source code | ~/Documents/code/maCopy (this repo) |
Built .app (after npm run tauri build) |
src-tauri/target/release/bundle/macos/maCopy.app |
Built .dmg installer |
src-tauri/target/release/bundle/dmg/maCopy_<version>_aarch64.dmg |
| Clipboard database (your data, never shipped) | ~/Library/Application Support/maCopy/clipboard.db |
| Vault/secrets | none — maCopy has no network calls and no accounts |
The .app and .dmg are build artifacts: they're regenerated by
npm run tauri build and are git-ignored. Nothing under target/ is
committed to the repo.
Fastest way to share it today (unsigned)
- Build it:
npm run tauri build - Grab the DMG:
src-tauri/target/release/bundle/dmg/maCopy_0.1.0_aarch64.dmg - Send that file (AirDrop, USB, file share — whatever).
What the other person needs to do
The build is ad-hoc signed (codesign -dv shows Signature=adhoc,
TeamIdentifier=not set) — not signed with an Apple Developer ID and not
notarized. macOS Gatekeeper will refuse to open it with the default
"Apple could not verify… malware" dialog on a different Mac (your own
Mac trusts it already because you built it there). This is normal for any
indie app that isn't notarized — it's not a maCopy-specific bug.
The recipient has two options:
Option A — right-click override (easiest, no Terminal)
- Copy
maCopy.appto/Applications. - Right-click (or Control-click) the app → Open → confirm Open in the dialog. This works even when double-click is blocked, and only needs to be done once.
Option B — clear the quarantine flag (Terminal)
xattr -cr /Applications/maCopy.app
Removes the "downloaded from the internet" quarantine attribute that triggers Gatekeeper's warning, then the app opens normally.
Either way, once it's launched once and allowed, it behaves like any other menu-bar app — including Launch at login in Settings.
The "real" way — signed + notarized (for wider distribution)
If you want to share this with people who shouldn't have to right-click or run Terminal commands (e.g. distributing beyond just you/family), you need:
- An Apple Developer ID ($99/yr Apple Developer Program).
- A "Developer ID Application" certificate in your keychain.
- Tauri's bundler config filled in (
tauri.conf.json→bundle.macOS.signingIdentity) or a manualcodesign --deep --sign "Developer ID Application: ..."step. - Notarization via
xcrun notarytool submit ... --wait(ortauri-plugin-updater's signing helpers), thenxcrun stapler staple maCopy.app.
This is tracked as a ship-blocker in docs/PRODUCT.md — not done yet because it requires an Apple Developer account, which is a cost/ identity decision for you to make, not something that can be automated away.
Other distribution ideas (once signed)
| Channel | Effort | Notes |
|---|---|---|
| Direct DMG (current) | none | Works today; Gatekeeper friction as above |
| Private Gitea release / file share | low | Attach the DMG to a Gitea release on your own instance |
Homebrew cask (brew install --cask) |
medium | Needs a signed release + a cask formula in a tap |
| Mac App Store | high | Sandbox rules make background clipboard monitoring + AppleScript paste tricky; likely not worth it for this app |
Sharing the source instead of a binary
If the other person can build it themselves (has Rust + Node), just give them repo access:
git clone gitea@git.levkin.ca:ilia/maCopy.git
cd maCopy
npm install
npm run tauri build
No signing needed for this path since it's their build on their Mac — same Gatekeeper trust maCopy already has on yours.