# macos-spm-app-packaging

Скилл помогает собрать macOS-приложение на SwiftPM без проекта Xcode: от скелета до подписи, нотаризации и appcast.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1400 установок · ★ 4009
- Автор: Dimillian
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/Dimillian/Skills/tree/HEAD/macos-spm-app-packaging/SKILL.md
- Обновлён: 2026-03-29
- HTML: https://affpapa.org/nevibecode/skills/macos-spm-app-packaging

## Что делает

Скилл ведёт по двум шагам. Сначала вы копируете `assets/templates/bootstrap/` в новый репозиторий и переименовываете `MyApp` в `Package.swift`, `Sources/MyApp/` и `version.env`, задаёте `APP_NAME`, `BUNDLE_ID` и версии. Потом копируете скрипты из `assets/templates/` в `Scripts/`, собираете через `swift build` и `swift test`, пакуете `Scripts/package_app.sh` и запускаете `Scripts/compile_and_run.sh`.

Внутри — готовые шаблоны: сборка .app-бандла с ресурсами и подписью, dev-цикл с перезапуском приложения, генерация .icns из файла Icon Composer, нотаризация со stapling и zip, appcast для Sparkle, стабильная dev-подпись и простой лаунчер. Для релиза есть `Scripts/sign-and-notarize.sh` и `Scripts/make_appcast.sh`, дальше — тег и публикация на GitHub.

Есть таблица частых сбоев нотаризации с причиной и лечением: дубликат версии, несовпадение entitlements, отсутствие `--options runtime` в `codesign`, зависание `xcrun notarytool`, не прикрепившийся тикет stapler. Скрипты рассчитаны на macOS, а `build_icon.sh` требует установленного Xcode. Если Sparkle вам не нужен, шаги с ним из шаблонов лучше убрать — иначе `BUILD_NUMBER` в `version.env` придётся поднимать на каждом обновлении.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Dimillian/Skills --skill macos-spm-app-packaging -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/macos-spm-app-packaging/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/macos-spm-app-packaging/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Dimillian/Skills --skill macos-spm-app-packaging -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/macos-spm-app-packaging/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Dimillian/Skills --skill macos-spm-app-packaging -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/macos-spm-app-packaging/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Dimillian/Skills macos-spm-app-packaging
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/macos-spm-app-packaging/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Dimillian/Skills --skill macos-spm-app-packaging -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Dimillian/Skills --path macos-spm-app-packaging
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/macos-spm-app-packaging/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Dimillian/Skills --skill macos-spm-app-packaging -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/Dimillian/Skills/tree/HEAD/macos-spm-app-packaging/SKILL.md

## Когда брать
- развернуть скелет macOS-приложения на SwiftPM с нуля
- собрать .app-бандл скриптом вместо Xcode
- подписать и нотаризовать релизную сборку
- сгенерировать appcast для обновлений Sparkle
- настроить стабильную dev-подпись для локальных запусков

## Примеры запросов агенту
- Собери скелет macOS-приложения на SwiftPM и переименуй MyApp в HelloApp
- Запакуй приложение через Scripts/package_app.sh и запусти его
- Подпиши и нотаризуй релизную сборку, потом сделай appcast

## Похожие
- [swiftpm-macos](https://affpapa.org/nevibecode/skills/swiftpm-macos.md) — скилл · 58 установок
- [spm-build-analysis](https://affpapa.org/nevibecode/skills/spm-build-analysis.md) — скилл · 3400 установок
- [packaging-notarization](https://affpapa.org/nevibecode/skills/packaging-notarization.md) — скилл · 56 установок
- [capacitor-app-spm-migration](https://affpapa.org/nevibecode/skills/capacitor-app-spm-migration.md) — скилл · 593 установки
- [cmux-architecture](https://affpapa.org/nevibecode/skills/cmux-architecture.md) — скилл · 4900 установок
- [macos-development](https://affpapa.org/nevibecode/skills/macos-development.md) — скилл · 1600 установок

Из того же набора: [dimillian/skills](https://affpapa.org/nevibecode/by/dimillian/skills.md) — 11 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
