CommunityCodierung & Entwicklunggithub.com

dimillian/macos-spm-app-packaging

Scaffold, erstellen und verpacken Sie SwiftPM-basierte macOS-Apps ohne Xcode-Projekt. Verwenden Sie es, wenn Sie ein macOS-App-Layout von Grund auf, SwiftPM-Ziele/Ressourcen, ein benutzerdefiniertes .app-Bundle-Assembly-Skript oder Signierungs-/Notarisierungs-/Appcast-Schritte außerhalb von Xcode benötigen.

Was ist macos-spm-app-packaging?

Dieses Skill ermöglicht die vollständige Erstellung, Kompilierung und Paketierung von SwiftPM-basierten macOS-Anwendungen, ohne dass ein Xcode-Projekt erforderlich ist. Es richtet sich an Entwickler, die eine macOS-App von Grund auf mit einem Swift Package Manager (SwiftPM)-Projektstruktur, Zielen und Ressourcen erstellen möchten. Das Skill unterstützt die Erstellung eines benutzerdefinierten .app-Bundle-Assembly-Skripts, das die App-Binärdatei, Frameworks und Ressourcen in der korrekten Bundle-Struktur organisiert. Darüber hinaus umfasst es Schritte zum Signieren, Notarisieren und Generieren von Appcasts, die für die Verteilung außerhalb des Mac App Stores erforderlich sind. Dieses Tool ist besonders nützlich für Continuous-Integration-Workflows, bei denen Xcode nicht verfügbar oder nicht gewünscht ist, oder für Entwickler, die die volle Kontrolle über den App-Erstellungsprozess haben möchten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dimillian/skills/tree/main/skills/macos-spm-app-packaging

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht macos-spm-app-packaging?

Scaffold, erstellen und verpacken Sie SwiftPM-basierte macOS-Apps ohne Xcode-Projekt. Verwenden Sie es, wenn Sie ein macOS-App-Layout von Grund auf, SwiftPM-Ziele/Ressourcen, ein benutzerdefiniertes .app-Bundle-Assembly-Skript oder Signierungs-/Notarisierungs-/Appcast-Schritte außerhalb von Xcode benötigen.

Verwendung

  1. Scaffold: Erstellen Sie die Projektstruktur mit swift package init --type executable.
  2. Konfigurieren: Bearbeiten Sie Package.swift, um Ziele, Abhängigkeiten und Ressourcen hinzuzufügen.
  3. Erstellen: Verwenden Sie swift build, um das Projekt zu kompilieren.
  4. Paketieren: Führen Sie das benutzerdefinierte Assembly-Skript aus, um das .app-Bundle zu erstellen.
  5. Signieren und Notarisieren: Wenden Sie die Code-Signierung an und reichen Sie die App zur Notarisierung bei Apple ein.
  6. Appcast aktualisieren: Generieren Sie einen Appcast-Eintrag für Sparkle-basierte Updates.

Beispiel-Assembly-Skript

#!/bin/bash

BUILD_DIR=".build/release"
APP_NAME="MyApp"
APP_BUNDLE="$APP_NAME.app"

# App-Bundle-Struktur erstellen
mkdir -p "$APP_BUNDLE/Contents/MacOS"
mkdir -p "$APP_BUNDLE/Contents/Resources"

# Binärdatei und Ressourcen kopieren
cp "$BUILD_DIR/$APP_NAME" "$APP_BUNDLE/Contents/MacOS/"
cp -r Resources/* "$APP_BUNDLE/Contents/Resources/"

# Info.plist erstellen
cat > "$APP_BUNDLE/Contents/Info.plist" <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>$APP_NAME</string>
    <key>CFBundleIdentifier</key>
    <string>com.example.$APP_NAME</string>
    <key>CFBundleName</key>
    <string>$APP_NAME</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
</dict>
</plist>
EOF

# Code-Signierung
codesign --force --sign "Developer ID Application: Your Name (TEAMID)" "$APP_BUNDLE"

# Notarisierung übermitteln
xcrun notarytool submit "$APP_BUNDLE" --apple-id "[email protected]" --team-id "TEAMID" --password "@keychain:AC_PASSWORD" --wait

# Appcast generieren
generate_appcast "path/to/archives"

Wichtige Hinweise

  • Dieses Skill ist optimiert für SwiftPM-basierte macOS-Apps; es erfordert, dass Ihr Projekt mit SwiftPM und nicht mit Xcode verwaltet wird.
  • Die Code-Signierung und Notarisierung erfordern gültige Apple-Entwicklerzertifikate und ein aktives Entwicklerkonto.
  • Für die Appcast-Generierung ist das Tool generate_appcast erforderlich, das Teil von Sparkle ist.

Unterstützte Plattformen

  • macOS (Zielplattform für die erstellten Apps)
  • SwiftPM (Build-System verwendet SwiftPM, nicht Xcode)

Siehe auch

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

dimillian/app-store-changelog

Create user-facing App Store release notes by collecting and summarizing all user-impacting changes since the last git tag (or a specified ref). Use when asked to generate a comprehensive release changelog, App Store "What's New" text, or release notes based on git history or tags.

dimillian/ios-debugger-agent

Use XcodeBuildMCP to build, run, launch, and debug the current iOS project on a booted simulator. Trigger when asked to run an iOS app, interact with the simulator UI, inspect on-screen state, capture logs/console output, or diagnose runtime behavior using XcodeBuildMCP tools.

dimillian/swift-concurrency-expert

Swift Concurrency review and remediation for Swift 6.2+. Use when asked to review Swift Concurrency usage, improve concurrency compliance, or fix Swift concurrency compiler errors in a feature or file. Concrete actions include adding Sendable conformance, applying @MainActor annotations, resolving actor isolation warnings, fixing data race diagnostics, and migrating completion handlers to async/await.

dimillian/swiftui-liquid-glass

Implement, review, or improve SwiftUI features using the iOS 26+ Liquid Glass API. Use when asked to adopt Liquid Glass in new SwiftUI UI, refactor an existing feature to Liquid Glass, or review Liquid Glass usage for correctness, performance, and design alignment.

dimillian/swiftui-performance-audit

Audit and improve SwiftUI runtime performance from code review and architecture. Use for requests to diagnose slow rendering, janky scrolling, high CPU/memory usage, excessive view updates, or layout thrash in SwiftUI apps, and to provide guidance for user-run Instruments profiling when code review alone is insufficient.

dimillian/swiftui-ui-patterns

Best practices and example-driven guidance for building SwiftUI views and components, including navigation hierarchies, custom view modifiers, and responsive layouts with stacks and grids. Use when creating or refactoring SwiftUI UI, designing tab architecture with TabView, composing screens with VStack/HStack, managing @State or @Binding, building declarative iOS interfaces, or needing component-specific patterns and examples.

dimillian/swiftui-view-refactor

Refactor and review SwiftUI view files with strong defaults for small dedicated subviews, MV-over-MVVM data flow, stable view trees, explicit dependency injection, and correct Observation usage. Use when cleaning up a SwiftUI view, splitting long bodies, removing inline actions or side effects, reducing computed `some View` helpers, or standardizing `@Observable` and view model initialization patterns.

Verwandte Skills