Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project. Use when you need a from-scratch macOS app layout, SwiftPM targets/resources, a custom .app bundle assembly script, or signing/notarization/appcast steps outside Xcode.
Use the skills CLI to install this skill with one command. Auto-detects all installed AI assistants.
Method 1 - skills CLI
npx skills i Dimillian/Skills/macos-spm-app-packagingMethod 2 - openskills (supports sync & update)
npx openskills install Dimillian/SkillsAuto-detects Claude Code, Cursor, Codex CLI, Gemini CLI, and more. One install, works everywhere.
Installation Path
Download and extract to one of the following locations:
No setup needed. Let our cloud agents run this skill for you.
Select Provider
Select Model
Best for coding tasks
Environment setup included
Bootstrap a complete SwiftPM macOS app folder, then build, package, and run it without Xcode. Use assets/templates/bootstrap/ for the starter layout and references/packaging.md + references/release.md for packaging and release details.
Bootstrap the project folder
assets/templates/bootstrap/ into a new repo.MyApp in Package.swift, Sources/MyApp/, and version.env.APP_NAME, BUNDLE_ID, and versions.Build, package, and run the bootstrapped app
assets/templates/ into your repo (for example, Scripts/).swift build and swift test.Scripts/package_app.sh.Scripts/compile_and_run.sh (preferred) or Scripts/launch.sh.Scripts/sign-and-notarize.sh and Scripts/make_appcast.sh.assets/templates/package_app.sh: Build binaries, create the .app bundle, copy resources, sign.assets/templates/compile_and_run.sh: Dev loop to kill running app, package, launch.assets/templates/build_icon.sh: Generate .icns from an Icon Composer file (requires Xcode install).assets/templates/sign-and-notarize.sh: Notarize, staple, and zip a release build.assets/templates/make_appcast.sh: Generate Sparkle appcast entries for updates.assets/templates/setup_dev_signing.sh: Create a stable dev code-signing identity.assets/templates/launch.sh: Simple launcher for a packaged .app.assets/templates/version.env: Example version file consumed by packaging scripts.assets/templates/bootstrap/: Minimal SwiftPM macOS app skeleton (Package.swift, Sources/, version.env).CFBundleVersion), so BUILD_NUMBER in version.env must increase for each update.MENU_BAR_APP=1 when packaging to emit LSUIElement in Info.plist.