All skills
dimillian avatar

/macos-spm-app-packaging

@3db84e6 official
by Thomas Ricouarddimillian/skills4k stars
206

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 this Skill: https://skilld.dev/gh/dimillian/skills/macos-spm-app-packaging

This session only. Nothing lands on disk.

referencesrelease.md

≈313 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Release and notarization notes

Notarization requirements

  • Install Xcode Command Line Tools (for xcrun and notarytool).
  • Provide App Store Connect API credentials:
    • APP_STORE_CONNECT_API_KEY_P8
    • APP_STORE_CONNECT_KEY_ID
    • APP_STORE_CONNECT_ISSUER_ID
  • Provide a Developer ID Application identity in APP_IDENTITY.

Sparkle appcast (optional)

  • Install Sparkle tools so generate_appcast is on PATH.
  • Provide SPARKLE_PRIVATE_KEY_FILE (ed25519 key).
  • The appcast script uses your zip artifact to create an updated appcast.xml.
  • Sparkle compares sparkle:version (derived from CFBundleVersion), so bump BUILD_NUMBER for every release.

Tag and GitHub release (optional)

Use a versioned git tag and publish a GitHub release with the notarized zip (and appcast if you host it on GitHub Releases).

Example flow:

git tag v<version>
git push origin v<version>

gh release create v<version> CodexBar-<version>.zip appcast.xml \
  --title "AppName <version>" \
  --notes-file CHANGELOG.md

Notes:

  • If you serve appcast from GitHub Releases or raw URLs, ensure the release is published and assets are accessible (no 404s).
  • Prefer using a curated release notes file rather than dumping the full changelog.

Source: SKILL.md on GitHub

1 alert16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill provides templates, scripts, and documentation to scaffold, build, and package SwiftPM-based macOS apps without Xcode. All scripts utilize standard development tools (such as swift build, codesign, and openssl) for local development workflows. No security issues, malicious behaviors, or data exfiltration risks were detected.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer6mo

    12/15 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 3db84e6. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Dormantupdated 7 months ago
  • macos
  • swift
  • spm
  • packaging
  • code-signing
  • notarization
  • app-bundle
  • sparkle

README badge

README badge for dimillian/skills/macos-spm-app-packaging

Scaffolds, builds, and packages SwiftPM-based macOS apps without Xcode, including bundle assembly, code signing, notarization, and Sparkle appcast generation. Targets developers who want to manage macOS app distribution via shell scripts and SwiftPM instead of an Xcode project.

Generated from the current SKILL.md.

Does this skill work with Xcode projects?
No. This skill is designed for SwiftPM-based macOS apps built without an Xcode project file. It provides templates and scripts for bootstrapping, building, and packaging from the command line.
How do I notarize and distribute the app?
Use the included `sign-and-notarize.sh` script to notarize with Apple, staple the ticket, and zip the app. Then create a GitHub release and optionally generate a Sparkle appcast with `make_appcast.sh` for automatic updates.
What if notarization fails with 'Invalid Code Signing Entitlements'?
Audit the `.entitlements` file to remove unsupported keys and ensure they match Apple's allowed set. The skill includes a troubleshooting table with recovery steps for common notarization failures.
Can I use this for menu bar apps?
Yes. Set `MENU_BAR_APP=1` when running the packaging script to emit the `LSUIElement` key in Info.plist.
Do I need Xcode installed to use this skill?
No, except for the optional `build_icon.sh` template, which requires Xcode to generate .icns files from an Icon Composer file.

Generated from the current SKILL.md. These answers refresh after source changes.