Macos Spm App Packaging
Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.
Install
npx skills add Dimillian/Skills --skill macos-spm-app-packaging -g -a claude-code -y- Repository
- Dimillian/Skills4k
- Category
- Mobile
- Updated
- 7mo ago
- License
- MIT
- Context cost
- Lightabout 1,137 tokens
- Runs scripts
- Yes, review before use
What it does
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.
macOS SwiftPM App Packaging (No Xcode)
Overview
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.
Two-Step Workflow
-
Bootstrap the project folder
- Copy
assets/templates/bootstrap/into a new repo. - Rename
MyAppinPackage.swift,Sources/MyApp/, andversion.env. - Customize
APP_NAME,BUNDLE_ID, and versions.
- Copy
-
Build, package, and run the bootstrapped app
- Copy scripts from
assets/templates/into your repo (for example,Scripts/). - Build/tests:
swift buildandswift test. - Package:
Scripts/package_app.sh. - Run:
Scripts/compile_and_run.sh(preferred) orScripts/launch.sh. - Release (optional):
Scripts/sign-and-notarize.shandScripts/make_appcast.sh. - Tag + GitHub release (optional): create a git tag, upload the zip/appcast to the GitHub release, and publish.
- Copy scripts from
Minimum End-to-End Example
Shortest path from bootstrap to a running app:
# 1. Copy and rename the skeleton
cp -R assets/templates/bootstrap/ ~/Projects/MyApp
cd ~/Projects/MyApp
sed -i '' 's/MyApp/HelloApp/g' Package.swift version.env
# 2. Copy scripts
cp assets/templates/package_app.sh Scripts/
cp assets/templates/compile_and_run.sh Scripts/
chmod +x Scripts/*.sh
# 3. Build and launch
swift build
Scripts/compile_and_run.sh
Validation Checkpoints
Run these after key steps to catch failures early before proceeding to the next stage.
After packaging (Scripts/package_app.sh):
# Confirm .app bundle structure is intact
ls -R build/HelloApp.app/Contents
# Check that the binary is present and executable
file build/HelloApp.app/Contents/MacOS/HelloApp
