Receber relatórios de erros legíveis no painel do Crashlytics

Por padrão, o Firebase Crashlytics processa automaticamente seus arquivos de símbolo de depuração (dSYM, na sigla em inglês) para gerar relatórios de erros desofuscados e legíveis. Geralmente, esse comportamento é configurado durante a configuração inicial do Crashlytics no seu app, especificamente adicionando um script de execução que faz upload automático de arquivos dSYM durante a fase de criação do app do Google Analytics.

Infelizmente, há alguns casos que podem causar falha no upload automático dos arquivos dSYM. Este guia fornece algumas maneiras de resolver problemas quando o Crashlytics não consegue localizar os arfquivos dSYM do seu app.

Verificar se o Xcode pode processar dSYMs e fazer upload dos arquivos automaticamente

Ao configurar o Crashlytics no seu app, você configurou um script de execução para processar automaticamente os dSYMs e fazer upload dos arquivos.

Verifique se a configuração do script de execução do Crashlytics está atualizada com os novos requisitos que começaram com o Xcode 15. Se a configuração não estiver atualizada, você poderá receber o seguinte erro:
error: Info.plist Error Unable to process Info.plist at path ....

Especificamente, o Xcode 15 e versões posteriores exigem que você forneça um conjunto mais completo de locais de arquivos. Para o script de execução do Crashlytics (firebase-ios-sdk/Crashlytics/run), verifique se você tem a seguinte configuração:

  1. Clique na guia Fases de compilação e expanda a seção Executar script.

  2. Na seção Arquivos de entrada, verifique se você tem os caminhos para os locais dos seguintes arquivos:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Verificar se o Xcode está produzindo dSYMs

Com frequência, a causa da ausência dos arquivos dSYM é o simples fato de que o Xcode parou de produzi-los. Quando um upload falha, o Crashlytics exibe um alerta "dSYM ausente" no Console do Firebase. Se você receber esse alerta, primeiro verifique se o Xcode está produzindo o dSYM correto para cada build:

  1. Abra seu projeto no Xcode e selecione o arquivo de projeto dele no navegador.

  2. Selecione o arquivo de destino principal do build.

  3. Abra a guia Build Settings do destino e clique em All.

  4. Pesquisar por debug information format.

  5. Defina Debug Information Format como DWARF with dSYM File para todos os tipos de builds.

  6. Recompile seu app.

Seus relatórios de erros serão exibidos no painel do Crashlytics. Se o problema persistir ou se encontrar outros erros, tente localizar os dSYMs e fazer upload deles para o Crashlytics manualmente.

Localizar seus dSYMs em uma máquina local

Execute o comando a seguir para exibir todos os UUIDs de dSYMs na sua máquina e procure o dSYM ausente:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Após encontrar o dSYM, faça upload manual dele para o Crashlytics. Se o comando mdfind não retornar nenhum resultado, procure no diretório Products em que seu .appestá localizado (por padrão, o diretório Products está localizado em Derived Data). Se o app for liberado para produção, você também poderá procurar o dSYM no diretório .xcarchive no disco:

  1. No Xcode, abra a janela Organizer e selecione seu app na lista. O Xcode exibe uma lista de arquivos do seu projeto.

  2. Mantendo a tecla Control pressionada, clique em um arquivo para visualizá-lo no Finder. Clique com a tecla Control pressionada novamente e depois em Show Package Contents.

  3. Em .xcarchive, há um diretório dSYMs que contém dSYMs gerados como parte do processo de arquivamento do Xcode.

Fazer upload dos seus dSYMs

O Crashlytics é compatível com várias maneiras de fazer upload dos arquivos dSYMs, automaticamente ou manualmente.

(Recomendado) Processar automaticamente seus dSYMs e fazer upload dos arquivos

Quando você configurou o Crashlytics inicialmente, provavelmente configurou esse comportamento de upload automático para seu aplicativo. No entanto, se houver falha nos uploads automáticos, verifique se sua configuração está correta.

Fazer upload manual dos arquivos dSYM

Se os uploads automáticos estiverem falhando, você poderá fazer o upload manual dos seus arquivos dSYM usando uma das opções a seguir.

  • Opção 1: usar a opção "Arrastar e soltar" baseada no console para fazer upload de um arquivo ZIP com os arquivos dSYM (acesse o Console do Firebase > Crashlytics > dSYMs).

  • Opção 2: usar o script upload-symbols, que pode ser chamado de qualquer lugar no processo de build para fazer upload manual dos arquivos dSYM. Para executar o script upload-symbols, use uma das seguintes opções:

    • Opção A: inclua a seguinte linha no processo de compilação:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Opção B: execute o script diretamente no seu terminal:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Para notas de uso e instruções adicionais sobre esse script, execute upload-symbols com o parâmetro --help.