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
Mensagem pronta para colar
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-packagingOu 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.mdConteú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
Inicialize a pasta do projeto
- Copie
assets/templates/bootstrap/para um novo repositório. - Renomeie
MyAppemPackage.swift,Sources/MyApp/eversion.env. - Personalize
APP_NAME,BUNDLE_IDe as versões.
- Copie
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 buildeswift test. - Empacotamento:
Scripts/package_app.sh. - Execução:
Scripts/compile_and_run.sh(preferencial) ouScripts/launch.sh. - Lançamento (opcional):
Scripts/sign-and-notarize.sheScripts/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.
- Copie os scripts de
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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3515
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
android-clean-architecture
Faz seu agente organizar projetos Android de forma eficiente. Ele estrutura o código para facilitar a manutenção e o desenvolvimento de novos recursos.
affaan-m/ECC
compose-multiplatform-patterns
Ajuda seu agente a usar padrões do Compose Multiplatform e Jetpack Compose em projetos KMP. Ele cobre gerenciamento de estado, navegação, temas e performance. Útil para criar interfaces de usuário consistentes.
affaan-m/ECC
dart-flutter-patterns
Faz seu agente escrever código para apps Dart e Flutter. Ele usa padrões modernos para criar apps robustos e fáceis de gerenciar.
affaan-m/ECC