macos-spm-app-packaging

Scaffold, build, sign, and notarize SwiftPM macOS apps without Xcode.

3|2|Updated Jan 18, 2026
One-click install
npx skills add https://github.com/dagba/ios-mcp --skill macos-spm-app-packaging-dagba
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: macos-spm-app-packaging
Source: https://github.com/dagba/ios-mcp/tree/main/skills/macos-spm-app-packaging
Command: npx skills add https://github.com/dagba/ios-mcp --skill macos-spm-app-packaging-dagba

SYSTEM DOCUMENTATION & REQUIREMENTS

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

  1. 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.
  2. 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.

Frequently Asked Questions about macos-spm-app-packaging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I package a macOS app using SwiftPM without Xcode?

To package a macOS app using SwiftPM without Xcode, use this Skill to bootstrap a SwiftPM project, build binaries, and assemble a custom .app bundle. It provides scripts to handle the entire layout and packaging process from the command line.

Can I code sign and notarize a SwiftPM app without an Xcode project?

Yes, you can code sign and notarize a SwiftPM app without an Xcode project. The workflow includes scripts for signing, notarization, and entitlements templating, enabling full release readiness directly from your SwiftPM environment.

What is the best way to scaffold a macOS app from scratch using SwiftPM?

The best way to scaffold a macOS app from scratch using SwiftPM is using the provided bootstrap templates. You copy the template directory, rename the app in Package.swift, and customize your APP_NAME and BUNDLE_ID to seed a minimal app layout.

Do I need a macOS environment with a Swift toolchain to use this packaging workflow?

Yes, you need a macOS environment with a Swift toolchain to use this packaging workflow. The process requires SwiftPM to build binaries, run tests, and execute the custom scripts that assemble the distributable macOS app bundle.

How do I prepare appcast entries for macOS app updates without Xcode?

To prepare appcast entries for macOS app updates without Xcode, run the provided appcast generation script. This optional release step creates the necessary update metadata after you build, sign, and notarize your SwiftPM application bundle.