Partilhar via


Simbologia do iOS

Importante

O Visual Studio App Center foi desativado em 31 de março de 2025, exceto para os recursos de Análise e Diagnóstico, que continuarão a ter suporte até 30 de junho de 2026. Mais informações.

Os relatórios de falhas do macOS, tvOS e iOS mostram os rastreamentos de pilha de todos os threads em execução na sua aplicação no momento em que ocorreu uma falha. Os rastreamentos de pilha contêm apenas endereços de memória; não nomes de classe, métodos, nomes de arquivo ou números de linha necessários para entender as falhas.

Para obter os endereços de memória traduzidos, você precisa carregar um pacote dSYM para o App Center, que contém todas as informações necessárias para a simbologia. Você pode aprender mais sobre simbologia na documentação oficial do desenvolvedor da Apple.

O serviço de compilação e distribuição do App Center pode gerar automaticamente um dSYM válido e um arquivo de mapa .zip de origem e carregar o arquivo para o serviço de diagnóstico. Se você usar o App Center para criar e distribuir automaticamente seu aplicativo para seus usuários finais, não precisará obter e carregar manualmente os arquivos de símbolo.

Falhas não simbólicas

As falhas não simbólicas são exibidas na seção Diagnóstico do App Center para que você possa visualizar alguns detalhes antes mesmo de carregar símbolos. Os símbolos ausentes dessas falhas serão mostrados no separador "não simbolizado". Se os símbolos ausentes forem carregados, o grupo de falhas não simbolizado será substituído por um grupo de falhas simbolizado.

Encontrar o .dSYM pacote

  1. No Xcode, abra o menu Janela e selecione Organizador.
  2. Selecione a guia Arquivos .
  3. Selecione seu aplicativo na barra lateral esquerda.
  4. Clique com o botão direito do rato no arquivo mais recente e selecione Mostrar no Finder.
  5. Clique com o botão direito do .xcarchive mouse no arquivo no Finder e selecione Mostrar conteúdo do pacote.
  6. Você deve ver uma pasta chamada dSYMs que contém seu pacote dSYM.
  7. Crie um arquivo zip do pacote dSYM.

Se você estiver usando o Visual Studio em vez do Xcode, consulte Onde posso encontrar o arquivo dSYM para simbolizar os logs de falhas do iOS? para localizar o arquivo dSYM.

Carregando símbolos

App Center Portal

  1. Inicie sessão no App Center e selecione a sua aplicação.
  2. No menu à esquerda, navegue até a seção Diagnóstico e selecione Símbolos.
  3. No canto superior direito, clique em Carregar símbolos e carregue o ficheiro.
  4. Depois que os símbolos forem indexados pelo App Center, as falhas serão simbolizadas para você.

Aplicativos iOS React Native

Para obter arquivos de símbolo para arquivos iOS React Native, crie um arquivo ZIP com o pacote dSYM no Mac e o mapa de origem JavaScript do seu aplicativo. O mapa de origem deve ser nomeado index.ios.map. Os comandos abaixo gerarão o mapa de origem para compilações de versão:

react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map

App Center API

O processo de upload de símbolos através da API envolve uma série de três chamadas de API: uma para alocar espaço em nosso back-end, uma para carregar o arquivo e uma para atualizar o status do upload. O corpo da primeira chamada de API deve ser definido symbol_type como Apple.

  1. Inicie uma POST solicitação para a API symbol_uploads. Esta chamada aloca espaço no nosso backend para o seu ficheiro e retorna uma propriedade symbol_upload_id e uma propriedade upload_url.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{JSON BODY}'
  1. Usando a upload_url propriedade retornada da primeira etapa, faça uma PUT solicitação com o cabeçalho: "x-ms-blob-type: BlockBlob" e forneça o local do arquivo no disco. Esta chamada carrega o arquivo para nossas contas de armazenamento de back-end. Saiba mais sobre cabeçalhos de solicitação de Blob PUT .
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. Faça uma PATCH solicitação à API symbol_uploads usando a symbol_upload_id propriedade retornada da primeira etapa. No corpo da solicitação, especifique se deseja definir o status do carregamento como committed (concluído com êxito) o processo de carregamento ou aborted (concluído sem êxito).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{ "status": "committed" }'

Observação

O carregamento de símbolos na API não funciona para ficheiros maiores que 256 MB. Use a CLI do App Center para carregar esses arquivos. Você pode instalar a CLI do App Center seguindo as instruções em nosso repositório da CLI do App Center.

App Center CLI

Você também pode usar a CLI para carregar arquivos de símbolo:

appcenter crashes upload-symbols --symbol {symbol file}

Código de bits

O Bitcode foi introduzido pela Apple para permitir que as aplicações enviadas para a App Store sejam recompiladas pela própria Apple e apliquem a otimização mais recente. Se o Bitcode estiver ativado, os símbolos gerados para o seu aplicativo na loja serão diferentes dos do seu próprio sistema de compilação.

O relatório de falhas do App Center ainda não suporta completamente a simbolização de falhas de aplicativos habilitados para bitcode. Enquanto isso, aconselhamos que você desative o bitcode. A desativação do bitcode simplifica significativamente o gerenciamento de símbolos e, atualmente, não tem nenhuma desvantagem conhecida para aplicativos iOS.

Desativar o código de bits para seu aplicativo

  1. No Xcode, abra as configurações do projeto clicando no elemento de nível superior no Project Navigator
  2. Vá para a página Configurações de compilação
  3. Procure bitcode
  4. No resultado, altere o valor de Sim para Não
  5. Reconstrua a sua aplicação

Com estes passos simples, o relatório de falhas do App Center irá comportar-se como habitualmente.

Recuperar símbolos para aplicações compatíveis com Bitcode

Se você quiser manter o bitcode ativado, você pode baixar os arquivos dSYM adequados seguindo estas etapas:

  1. Abra o Organizador do Xcode
  2. Selecione o arquivo específico da sua aplicação que carregou para o iTunes Connect
  3. Clique no botão "Download dSYMs". Esta fase irá inserir os arquivos dSYM, compilados com Bitcode, no arquivo original.
  4. Carregue os símbolos para o aplicativo e a versão correspondentes no App Center

Se o organizador Xcode não fornecer novos símbolos, tem de baixar os ficheiros dSYM a partir do portal iTunes Connect ao seguir estes passos:

  1. Selecione a sua aplicação no portal iTunes Connect
  2. Selecione a guia Atividade na parte superior
  3. Selecione a versão de compilação do seu aplicativo que tem os símbolos ausentes
  4. Clique no link Download dSYM
  5. Carregue o ficheiro transferido para o App Center. Este ficheiro contém os símbolos necessários para que o App Center simbolize as suas falhas.

Solução de problemas de símbolos

Se suas falhas ainda aparecerem sem simbolização depois de carregar símbolos e desativar o código de bits, pode ser porque os arquivos dSYM carregados não correspondem aos exigidos pelo App Center. Quando você carrega arquivos dSYM, o App Center os faz corresponder à versão correta do aplicativo com base em seus UUIDs.

Você pode verificar se seus arquivos dSYM têm os UUIDs corretos usando uma ferramenta CLI chamada dwarfdump.

  1. Encontre o UUID no arquivo dSYM:
dwarfdump --u CrashProbeiOS.app.dSYM
  1. O resultado deve ser mais ou menos assim:
UUID:ADF53C85-4638-3EFF-A33C-42C13A18E915 (armv7)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
UUID:D449E33D-7E74-379D-8B79-15EE104ED1DF (arm64)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
  1. Verifique se o UUID retornado corresponde aos UUIDs mostrados na caixa de diálogo de símbolos de depuração:

O App Center exibe o UUID dos símbolos necessários

Ignorando símbolos

Quando o App Center não tem todos os arquivos de símbolos para simbolizar totalmente os relatórios de falhas, as falhas são listadas na guia Não simbolizado . Os símbolos necessários são carregados a partir desta página se você tiver acesso a eles.

Se não conseguir carregar os símbolos, pode marcá-los como Ignorados selecionando linhas na tabela e clicando no botão Ignorar versões . Este botão instrui o App Center para processar os crashes e simbolizá-los da forma mais exaustiva possível com os símbolos nos arquivos. Quando terminarem o processamento, eles aparecerão na guia Falhas parcialmente simbolizados. Novas falhas que também dependem desses mesmos IDs de símbolo marcados como ignorados ignorarão a guia Não simbólica à medida que entram e fluem pelo sistema.