Pular para o conteúdo
supastack
Explorar a documentação
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /pt/docs/desktop/signing.md (or send Accept: text/markdown).

Assinatura de código

Assina os instaladores para que macOS e Windows parem de avisar os teus utilizadores.

Passo a passo para iniciantes

Pré-requisitos: Conclua a configuração local do Desktop, incluindo Rust e as ferramentas de construção do sistema operacional. Pare o processo de desenvolvimento do Tauri antes de construir um instalador; deixe o back-end da Web em execução. Execute cada verificação abaixo na raiz do repositório e espere que ela termine antes de executar a próxima. Os comandos do pacote filtrado funcionam em checkouts somente para desktop e todas as plataformas.

Termos rápidos: um espaço de trabalho consiste em usuários, dados e configurações separados de uma equipe. O servidor é o back-end confiável; mantenha as chaves do provedor fora do navegador e do código do telefone. Uma migração é uma alteração de versão do banco de dados que cria ou atualiza tabelas. Um modelo de IA é o mecanismo que responde; o catálogo de modelos é a lista do servidor de IDs e preços de modelos disponíveis. Um provedor é um serviço externo, como IA, e-mail ou serviço de cobrança. Um direito é uma concessão que permite que um espaço de trabalho use um recurso. Um webhook é uma mensagem que um serviço envia para o URL de outro serviço.

1. Em uma filial local, peça ao seu agente de codificação para inspecionar apps/desktop/src-tauri/tauri.conf.json e definir o identificador do produto, o nome do aplicativo, os ícones e o back-end URL com os valores que você possui. Use um back-end HTTPS público URL para compilações de lançamento.

2. Na raiz do repositório, execute as verificações do pacote Desktop abaixo. Antes de check:release-config, defina SUPASTACK_APP_URL neste terminal usando o comando do sistema operacional na configuração local do desktop; o back-end público HTTPS deve estar em execução e o identificador do aplicativo deve ser seu.

3. Uma compilação bem-sucedida não assina, autentica ou publica um instalador; se Rust ou uma biblioteca do sistema estiver faltando, conclua a configuração local do Desktop.

Para código personalizado, comece com o prompts/README.md fornecido e copie o prompt mais próximo: prompts/new-app-screen.md para uma tela de aplicativo ou prompts/new-landing-page.md para uma página pública. Para trabalho de servidor, banco de dados ou provedor, dê ao seu agente de codificação a tarefa deste guia e peça-lhe para ler AGENTS.md, .ai/PROJECT_CONTEXT.md e espelhos .ai/ correspondentes; inspecione os arquivos de origem exatos nomeados aqui; listar arquivos e verificações antes de editar; preservar a propriedade do espaço de trabalho e os segredos apenas do servidor; e mostrar a diferença. Informe o comportamento desejado, campos de entrada e saída, funções permitidas, sucessos e erros esperados e a conta de teste, provedor ou dispositivo. Use valores de amostra; nunca cole um segredo real.

corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build

Configurar o shell do produto

Revise src-tauri/tauri.conf.json, metadados de carga, recursos e identificadores de plataforma. Substitua os ícones do aplicativo por meio do processo de ativos compartilhados e defina o back-end pretendido URL em tempo de construção/execução. O aplicativo web hospedado já deve estar implantado e acessível.

Execute o portão de construção nativo

Esses comandos de pacote executam verificações e testes de tipo Rust, validam as configurações de versão e criam o instalador Tauri. A configuração de assinatura e distribuição depende da plataforma de destino e de sua conta/certificados; não armazene material de assinatura na fonte.

corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build

Verifique o instalador no sistema operacional de destino

Verifique instalação limpa, inicialização, acessibilidade de back-end, autenticação, menus/bandeja, registro de teclas de atalho, segunda instância, links diretos, nova tentativa offline e desinstalação. Verifique cada sistema operacional compatível separadamente. Uma construção local não comprova distribuição comercial assinada ou autenticada; configuração de assinatura, feed de atualização e automação de lançamento não estão incluídos.

Instalação e configuração

1. Instaladores não assinados instalam bem na tua máquina mas disparam avisos de Gatekeeper e SmartScreen para todos os outros — assina antes de lançar.

2. No macOS, inscreve-te no Apple Developer Program para um certificado Developer ID, depois adiciona a configuração de assinatura e notarização na secção bundle de src-tauri/tauri.conf.json e alimenta o Tauri com o seu env de assinatura documentado (APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD, APPLE_SIGNING_IDENTITY, mais as credenciais de notarização APPLE_API_KEY / APPLE_API_ISSUER) a partir do secret store do teu CI.

3. No Windows, configura a assinatura Windows do bundle — um thumbprint de certificado ou um comando signtool personalizado — com o certificado também entregue através do secret store do teu runner.

# tauri.conf.json ships unsigned today:
#   "bundle": { "active": true, "targets": "all", "icon": [...] }
# Add signing under bundle > macOS / bundle > windows
# and keep every certificate and password in your secret store,
# never in the repo.
# Auto-updater & release channels (stable / beta via {{channel}}):
# SUPASTACK_UPDATER_ENDPOINT=https://releases.example.com/{{channel}}/{{target}}/{{arch}}/{{current_version}}
# SUPASTACK_UPDATER_PUBKEY=…
# SUPASTACK_UPDATE_CHANNEL=stable

Fluxo de implementação

Provisiona certificados através do teu próprio secret store e injeta-os como variáveis de ambiente em build-time — um certificado commitado no repo é um certificado para revogar.

Embute a SUPASTACK_APP_URL de produção no mesmo build de release para que os shells instalados apontem para a app deployada.

Verificação e resolução de problemas

Verifica instalando o artefacto produzido numa máquina que não é tua: sem aviso de Gatekeeper ou SmartScreen, a app arranca e a sessão persiste. Um tauri build verde sem o teste de instalação assinada não é evidência de release.

A seguir: o Checklist de deployment do separador Web cobre os gates de lançamento do lado do servidor.

Perguntas frequentes

14 perguntas

O que é o supastack?

O supastack é uma base modular para construir produtos SaaS com IA. Reúne a infraestrutura comum para que possas concentrar-te nas funcionalidades próprias do teu produto.

Suporta web e mobile?

Sim. O supastack inclui apps Next.js e Expo como pontos de partida para experiências web e mobile.

Que autenticação está incluída?

O Better Auth cobre email/palavra-passe, OTP e login social. Os workspaces pessoais são aprovisionados com a conta para que os registos fiquem delimitados desde o primeiro dia.

Como é suportada a IA?

O supastack inclui IA multi-fornecedor configurável, registo de utilização, orçamentos e suporte encriptado de chaves próprias (BYOK).

Como são geridas as subscrições?

Para produtos construídos sobre o kit, a faturação Stripe, as subscrições e as permissões formam a base do acesso pago. Os segredos de fornecedor ficam no servidor.

Onde vive o código próprio do meu produto?

As funcionalidades próprias do produto ficam num codebase separado, enquanto o produto configura e integra os módulos base do supastack.

Como funciona o preço do supastack?

O kit é uma compra única com atualizações vitalícias: Uma framework por 249 $ (preço de lançamento temporário — 100 $ de desconto sobre o preço normal de 349 $) ou Todas as frameworks (Next.js, iOS, Android) por 499 $ (preço de lançamento temporário — 100 $ de desconto sobre o preço normal de 599 $), mais 75 $ por lugar de programador adicional. Sem subscrição do kit. O checkout neste site entrega a tua chave de licença por email, com acesso ao repo por convite GitHub.

Como é que os workspaces delimitam os meus dados?

Os registos do utilizador são delimitados por workspaceId. Identidade, permissões, utilização de IA, eventos de faturação e entradas de auditoria ficam dentro do limite do workspace pessoal.

Como funcionam os jobs em segundo plano?

O Trigger.dev é o runtime de jobs explícito. O contrato JobRunner só promete enqueue, status e cancel — a semântica de workflow permanece específica e explícita do Trigger.dev.

Como difere o email da divulgação?

O email transacional cobre fluxos de produto como avisos de conclusão de tarefas. A divulgação fria e as campanhas pertencem ao próprio produto, fora do módulo de email deste kit.

Como funcionam as compras no aplicativo móvel?

O aplicativo móvel inclui compras nativas e restauração via RevenueCat, com acesso verificado pelo servidor. Configure as contas das lojas e conclua os testes em dispositivos antes de publicar. A cobrança web permanece separada.

Onde residem as chaves dos fornecedores de IA?

As credenciais BYOK são encriptadas e ficam no servidor. As chaves são higienizadas nos logs; a utilização e os orçamentos ficam visíveis ao nível do workspace.

Quais métodos de pagamento o checkout aceita?

O checkout hospedado na Stripe aceita cartões e também pode oferecer Alipay e WeChat Pay quando essas carteiras estiverem ativadas na conta Stripe — útil para compradores na China. As autorizações de carteira são confirmadas de forma assíncrona, então a página da licença é atualizada assim que o pagamento é liquidado.

Posso solicitar um reembolso?

Depois de obter acesso ao repositório, o supastack é seu para sempre, portanto não pode ser reembolsado. Mas fique tranquilo: você recebe o código-fonte completo com atualizações vitalícias para criar e lançar produtos ilimitados para você ou seus clientes. Você apenas não pode revender o código nem redistribuir o repositório como starter kit ou modelo.

PT
Tema