What problem does it solve?
This Skill provides a complete workflow to scaffold, build, and package macOS apps using SwiftPM without relying on Xcode, enabling a from-scratch app layout, SwiftPM targets/resources, and a custom .app bundle assembly with signing/notarization/appcast steps.
Core Features & Use Cases
- Two-step workflow: Bootstrap a SwiftPM macOS app skeleton and then build, package, and run the bootstrapped app.
- Templates & bootstrap: Use assets/templates/bootstrap/ to seed a minimal macOS app, rename MyApp in Package.swift, Sources/MyApp/, and version.env, and customize APP_NAME and BUNDLE_ID.
- Packaging, signing & release: Use the provided scripts to build binaries, create the .app bundle, sign, notarize, and optionally prepare appcast entries for updates.
- Release readiness: Notarization, entitlements templating, and appcast generation support included in the workflow.
- Use Case: Quickly produce a distributable macOS app from a SwiftPM project without opening Xcode.
Quick Start
- Bootstrap a new SwiftPM macOS app using the templates:
- Copy assets/templates/bootstrap/ into a new repo.
- Rename MyApp in Package.swift, Sources/MyApp/, and version.env.
- Customize APP_NAME, BUNDLE_ID, and versions.
- Build, package, and run the bootstrapped app:
- Copy scripts from assets/templates/ into your repo (e.g., Scripts/).
- Build/tests: swift build and swift test.
- Package: Scripts/package_app.sh.
- Run: Scripts/compile_and_run.sh or Scripts/launch.sh.
- Release (optional): Scripts/sign-and-notarize.sh and Scripts/make_appcast.sh.
- Tag + GitHub release (optional): create a git tag, upload the zip/appcast to the GitHub release, and publish.