← ClaudeAtlas

release-macos-spm-packaginglisted

Scaffold, build, and package SwiftPM-based macOS apps without Xcode project. Use when you need a from-scratch macOS app layout, SwiftPM targets/resources, custom .app bundle assembly, or signing/notarization steps outside Xcode.
patrickserrano/lacquer · ★ 1 · AI & Automation · score 67
Install: claude install-skill patrickserrano/lacquer
# macOS SwiftPM App Packaging ## Overview Bootstrap a complete SwiftPM macOS app, then build, package, and run it without Xcode. This skill covers the full workflow from project scaffolding to release distribution. ## Project Scaffolding ### Basic Structure ``` MyApp/ ├── Package.swift ├── Sources/ │ └── MyApp/ │ ├── MyApp.swift # @main App entry │ └── ContentView.swift ├── Resources/ │ ├── Assets.xcassets/ │ └── Info.plist ├── Scripts/ │ ├── package_app.sh │ ├── compile_and_run.sh │ └── sign-and-notarize.sh └── version.env ``` ### Package.swift ```swift // swift-tools-version: 5.9 import PackageDescription let package = Package( name: "MyApp", platforms: [.macOS(.v14)], products: [ .executable(name: "MyApp", targets: ["MyApp"]) ], targets: [ .executableTarget( name: "MyApp", resources: [ .process("Resources") ] ) ] ) ``` ### version.env ```bash APP_NAME="MyApp" BUNDLE_ID="com.example.myapp" VERSION="1.0.0" BUILD_NUMBER="1" MIN_MACOS="14.0" # Set to 1 for menu bar apps MENU_BAR_APP=0 ``` ## Build and Run ### Build with SwiftPM ```bash # Debug build swift build # Release build swift build -c release # Run tests swift test ``` ### Package as .app Bundle Create `Scripts/package_app.sh`: ```bash #!/bin/bash set -e source version.env BUILD_DIR=".build/release" APP_BUNDLE="$BUILD_DIR/$APP_NAME.app" CONTENTS="$APP_BUNDLE/Contents" M