Pular para o conteúdo
Skillpedia
Apps de celular48 mil · #3515

macos-spm-app-packaging

Ajuda seu agente a empacotar aplicativos macOS. Permite construir, assinar e empacotar apps feitos em Swift sem usar o Xcode.

O que ela faz

Esta ferramenta ajuda você a criar um aplicativo para Mac usando Swift, sem precisar do Xcode. Ela organiza os arquivos, compila o código, assina o aplicativo e o empacota para distribuição.

Quando usar

  • ✓Quando você quer criar um app para Mac com Swift, mas não quer usar o Xcode.
  • ✓Quando você precisa empacotar, assinar ou preparar seu app para ser distribuído.
  • ✓Quando você quer automatizar o processo de construção e lançamento do seu app.

Exemplo do que pedir para a IA

“Crie um aplicativo para Mac chamado 'MeuApp' usando SwiftPM e me mostre como empacotá-lo.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/macos-spm-app-packaging/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/macos-spm-app-packaging/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta primeiro cria a estrutura básica do seu projeto. Depois, ela usa scripts para compilar seu código, criar o pacote do aplicativo, assiná-lo digitalmente e prepará-lo para ser compartilhado.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill macos-spm-app-packaging

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/macos-spm-app-packaging/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Empacotamento de Apps macOS com SwiftPM (Sem Xcode)

Visão Geral

Inicialize uma pasta completa de app SwiftPM para macOS, depois compile, empacote e execute sem o Xcode. Use assets/templates/bootstrap/ para o layout inicial e references/packaging.md + references/release.md para detalhes de empacotamento e lançamento.

Quando Usar

  • Quando o usuário precisa de um app macOS baseado em SwiftPM sem depender de um projeto Xcode.
  • Quando você precisa de orientação sobre empacotamento, assinatura, notarização ou appcast para um app SwiftPM.

Fluxo de Trabalho em Duas Etapas

  1. Inicialize a pasta do projeto

    • Copie assets/templates/bootstrap/ para um novo repositório.
    • Renomeie MyApp em Package.swift, Sources/MyApp/ e version.env.
    • Personalize APP_NAME, BUNDLE_ID e as versões.
  2. Compile, empacote e execute o app inicializado

    • Copie os scripts de assets/templates/ para o seu repositório (por exemplo, Scripts/).
    • Compilação/testes: swift build e swift test.
    • Empacotamento: Scripts/package_app.sh.
    • Execução: Scripts/compile_and_run.sh (preferencial) ou Scripts/launch.sh.
    • Lançamento (opcional): Scripts/sign-and-notarize.sh e Scripts/make_appcast.sh.
    • Tag + lançamento no GitHub (opcional): crie uma tag git, faça upload do zip/appcast para o lançamento do GitHub e publique.

Exemplo Mínimo de Ponta a Ponta

Caminho mais curto da inicialização a um app em execução:

# 1. Copy and rename the skeleton
cp -R assets/templates/bootstrap/ ~/Projects/MyApp
cd ~/Projects/MyApp
sed -i '' 's/MyApp/HelloApp/g' Package.swift version.env

# 2. Copy scripts
cp assets/templates/package_app.sh Scripts/
cp assets/templates/compile_and_run.sh Scripts/
chmod +x Scripts/*.sh

# 3. Build and launch
swift build
Scripts/compile_and_run.sh

Pontos de Verificação de Validação

Execute estes após etapas importantes para capturar falhas precocemente antes de prosseguir para o próximo estágio.

Após o empacotamento (Scripts/package_app.sh):

# Confirm .app bundle structure is intact
ls -R build/HelloApp.app/Contents

# Check that the binary is present and executable
file build/HelloApp.app/Contents/MacOS/HelloApp

Após a assinatura (Scripts/sign-and-notarize.sh ou assinatura de desenvolvimento ad-hoc):

# Inspect signature and entitlements
codesign -dv --verbose=4 build/HelloApp.app

# Verify the bundle passes Gatekeeper checks locally
spctl --assess --type execute --verbose build/HelloApp.app

Após notarização e stapling:

# Confirm the staple ticket is attached
stapler validate build/HelloApp.app

# Re-run Gatekeeper to confirm notarization is recognised
spctl --assess --type execute --verbose build/HelloApp.app

Falhas Comuns de Notarização

Sintoma Causa Provável Recuperação
The software asset has already been uploaded Submissão duplicada para a mesma versão Incremente BUILD_NUMBER em version.env e reempacote.
Package Invalid: Invalid Code Signing Entitlements Entitlements no arquivo .entitlements não correspondem ao provisionamento Audite os entitlements em relação ao conjunto permitido da Apple; remova chaves não suportadas.
The executable does not have the hardened runtime enabled Falta o flag --options runtime na invocação codesign Edite sign-and-notarize.sh para adicionar --options runtime a todas as chamadas codesign.
Notarização travada / sem e-mail de status Problema de rede ou credencial xcrun notarytool Execute xcrun notarytool history para verificar o status; reexporte a chave da API do App Store Connect se expirada.
stapler validate falha após notarização bem-sucedida Ticket ainda não propagado Aguarde ~60 s, então execute xcrun stapler staple novamente.

Modelos

  • assets/templates/package_app.sh: Compila binários, cria o bundle .app, copia recursos, assina.
  • assets/templates/compile_and_run.sh: Loop de desenvolvimento para matar o app em execução, empacotar, iniciar.
  • assets/templates/build_icon.sh: Gera .icns a partir de um arquivo Icon Composer (requer instalação do Xcode).
  • assets/templates/sign-and-notarize.sh: Notariza, stapla e comprime uma compilação de lançamento.
  • assets/templates/make_appcast.sh: Gera entradas de appcast Sparkle para atualizações.
  • assets/templates/setup_dev_signing.sh: Cria uma identidade de assinatura de código de desenvolvimento estável.
  • assets/templates/launch.sh: Launcher simples para um .app empacotado.
  • assets/templates/version.env: Arquivo de versão de exemplo consumido por scripts de empacotamento.
  • assets/templates/bootstrap/: Esqueleto mínimo de app macOS SwiftPM (Package.swift, Sources/, version.env).

Notas

  • Mantenha os entitlements e a configuração de assinatura explícitos; edite os scripts do modelo em vez de reimplementar.

…

Perguntas frequentes

O que é SwiftPM?

SwiftPM (Swift Package Manager) é uma ferramenta para gerenciar dependências e compilar projetos Swift. Ela permite organizar seu código sem a necessidade de um arquivo de projeto complexo como os do Xcode.

O que significa 'assinar' um aplicativo?

Assinar um aplicativo é como colocar um selo de autenticidade. Isso garante que o aplicativo não foi alterado desde que foi criado pelo desenvolvedor e ajuda o macOS a confiar nele.

O que é notarização?

Notarização é um processo onde a Apple verifica seu aplicativo para garantir que ele não contém malware. É um passo importante para distribuir aplicativos fora da App Store.

Detalhes

Descrição original do autor

Scaffold, build, sign, and package SwiftPM macOS apps without Xcode projects.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3515
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas