Skip to content

PermissionPilot 0.1.0

Latest

Choose a tag to compare

@arpitagarwal1301 arpitagarwal1301 released this 20 Jun 21:08
· 11 commits to main since this release

PermissionPilot is a drop-in SwiftUI onboarding + permissions flow for
non–App Store macOS apps. It detects, prompts, deep-links, and onboards across
16 macOS permissions — with zero third-party dependencies (Apple
frameworks only).

Highlights

  • 🧭 First-run wizard (welcome → permissions → done) with live re-check + auto-advance.
  • ✅ Drop-in rows / checklist / grid that flip to ✓ and report "N of M enabled."
  • 🔗 Deep-links to the exact Privacy pane; handles signing/relaunch/Sequoia gotchas.
  • 🧩 ComposablePermissionPilotCore (engine), PermissionPilotUI (components), PermissionPilot (full wizard).

Permissions (3 tiers)

  • Prompt-based: Camera, Microphone, Location, Contacts, Calendars, Reminders, Photos, Speech Recognition, Bluetooth, Notifications, + system-prompt panes (Accessibility, Screen Recording, Input Monitoring).
  • Deep-link-only: Full Disk Access, Automation, Local Network.

Install

.package(url: "https://github.com/arpitagarwal1301/PermissionPilot.git", from: "0.1.0")

Requirements

  • macOS 12+, Swift 5.9+ / Xcode 15+
  • A non-sandboxed app (TCC deep-links are disallowed under the App Sandbox / Mac App Store).

Before you ship

  • Info.plist usage strings are required for every prompt-based permission — a missing key crashes the app on first request. Calendars/Reminders need both the macOS 14+ and 12–13 keys.
  • Code-signing & TCC: grants are tied to your code signature + bundle ID. Sign with a stable identity (Developer ID + notarization for distribution) and keep the bundle ID constant.

Demo

No prebuilt binary — the demo is built and signed locally so it gets its own TCC
identity:

Example/build-demo-app.sh --open

See the README for the full per-permission reference and gotchas.