@logbrew/sdk 0.1.28. Você precisa de um app Vite, de acesso à saída do build e de permissão para criar uma chave de projeto. Para arquivos de depuração da Apple, veja Crashes e travamentos da Apple.
Mantenha o build e os eventos juntos
Use o mesmo projeto, a mesma versão, o mesmo ambiente e o mesmo serviço no upload e nos eventos de runtime do app. Veja Versões para saber como nomear versões. Este guia usaweb@1.2.3, staging e checkout-web.
Mude a versão sempre que o código do build mudar. Faça upload do build preparado e depois implante esse mesmo build. Não refaça o build nem altere o JavaScript dele depois do upload.
Adicione o plugin do Vite
Instale o kit de desenvolvimento de software (SDK) no diretório do app:vite.config.js. Mantenha os seus outros plugins e as configurações de build. Substitua o ID do projeto:
minifiedPathPrefix é a URL implantada do diretório do build. O plugin acrescenta o caminho de cada arquivo dentro desse diretório. Por exemplo, dist/assets/app.js vira https://app.example.com/assets/app.js. Se você servir o build em /web, inclua /web no prefixo. Não adicione /assets ao prefixo.
Sem a opção upload, o plugin não envia nada ao LogBrew. Ele também:
- Define
build.sourcemapcomo"hidden"quando você não define esse valor. Se você definiu comofalse, mude para"hidden". - Mantém os nomes das funções quando você não define opções do minificador. Se você definir as suas, mantenha os nomes nelas.
Faça o build e confira localmente
Execute o build de produção:sourcesContent incorporado e o caminho local da raiz do app. Ele grava dist/logbrew-release-artifacts.json.
Abra o manifesto. Confira se validation.status é ready e se ele lista os arquivos e as URLs implantadas deste build. Os maps do tipo hidden geram o aviso sourceMappingURL comment missing. Esse aviso é esperado.
Não faça upload de um map que contenha um caminho privado ou um código-fonte que você não quer compartilhar. O upload também inclui o JavaScript compilado, então mantenha segredos fora do bundle do app.
Confira o upload localmente. Este comando não envia nenhuma requisição e não precisa de chave:
0 e exibir "status": "dry_run". Isso confere os arquivos locais e o manifesto. Não testa o servidor. Se o seu build usar outro diretório de saída, mude os dois caminhos.
Para conferir um mapeamento, execute o app compilado e copie um frame da pilha gerado, com o arquivo, a linha e a coluna:
"status": "resolved". O objeto original mostra o arquivo, a linha e a coluna do código-fonte. Este comando roda localmente e não faz upload de nada.
Crie uma chave de artefato
Entre na conta com a CLI do LogBrew. Encontre o ID do projeto:--abandon-retry.
Uma chave de artefato tem escopo de projeto e só de escrita. Ela faz upload de source maps e de arquivos de depuração. Ela não pode enviar telemetria nem ler os metadados dos artefatos. Não use uma credencial da conta nem uma chave de SDK de runtime no lugar dela.
Guarde a chave como LOGBREW_RELEASE_ARTIFACT_TOKEN nas configurações de segredos do seu ambiente de build. Não exiba a chave nem faça commit dela. Não coloque a chave em uma variável visível no cliente, como VITE_* ou EXPO_PUBLIC_*.
Defina a variável no processo que executa o upload. O helper não lê arquivos .env. O Vite não carrega esses arquivos em process.env durante a avaliação da configuração.
Faça upload do build preparado
Use os mesmos arquivos e o mesmo manifesto que você conferiu. Este comando envia o upload ao LogBrew:"status": "uploaded" mostra que o LogBrew aceitou o upload. Se o comando sair com erro, pare e use a tabela abaixo.
O helper tenta de novo até 2 vezes depois de um erro de rede ou de uma resposta 408, 429 ou 5xx. Ele envia os mesmos arquivos preparados em cada tentativa. Use --max-retries para mudar esse número.
Depois que o upload manual funcionar, você pode fazer o upload durante o build do Vite. Adicione esta opção à configuração do plugin:
dryRun: true para testar sem fazer upload.
O plugin não exclui os source maps do diretório de saída. Não implante arquivos .map nem o manifesto no site público ou na CDN.
Para mapear um frame de um problema capturado, execute symbolicate-js com esse frame sobre o mesmo build preparado.
Leia um novo problema
Implante o mesmo build preparado no ambiente de teste. Provoque um erro de teste seguro pelo seu caminho de captura de problemas. Não envie entradas de usuários, credenciais nem uma pilha bruta neste teste. Encontre o novo problema com o mesmo projeto e o mesmo contexto de build:event.stack_frames. Um frame com source: "symbolicated" tem o arquivo, a linha e a coluna originais do seu upload. Um frame com source: "captured" tem o local que o app enviou.
logbrew read issue "<issue_id>" --json também retorna um objeto symbolication. Cada frame desse objeto tem um status: resolved, artifact_not_found, source_not_resolved, invalid_metadata ou unavailable. Só um frame resolved tem um local original.
O LogBrew mapeia os frames quando você lê o problema. Um upload feito depois do erro pode mapear um evento anterior que tenha o mesmo Debug ID. Um frame mapeado aponta para o código que deve ser examinado. Ele não mostra o que causou o erro. Veja Investigar um problema para conhecer os outros campos.
Corrija uma verificação que falhou
Mantenha arquivos de código-fonte, chaves e caminhos privados fora das mensagens de suporte. Veja Solução de problemas e Erros da API.
