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.

referencespackaging.md

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

Packaging notes

Build output paths

SwiftPM places binaries under:

  • .build/<arch>-apple-macosx/<config>/<AppName> for arch-specific builds
  • .build/<config>/<AppName> for some products (frameworks/tools)

Use ARCHES="arm64 x86_64" with swift build to produce universal binaries.

Common environment variables (used by templates)

  • APP_NAME: App/binary name (for example, MyApp).
  • BUNDLE_ID: Bundle identifier (for example, com.example.myapp).
  • ARCHES: Space-separated architectures (default: host arch).
  • SIGNING_MODE: adhoc to avoid keychain prompts in dev.
  • APP_IDENTITY: Codesigning identity name for release builds.
  • MACOS_MIN_VERSION: Minimum macOS version for Info.plist.
  • MENU_BAR_APP: Set to 1 to add LSUIElement to Info.plist.

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.