O Mobile Analysis Service (MAS) permite a análise reversa de logs de falha de aplicativos iOS por meio de tabelas de símbolos para localizar códigos problemáticos no aplicativo, aumentando a eficiência na solução de problemas e na resolução de exceções em produção. O serviço também oferece recursos de gerenciamento de tabelas de símbolos iOS para importar e consultar tabelas, além de executar testes de análise reversa.
Sobre a tabela de símbolos
A tabela de símbolos registra o mapeamento entre endereços de memória, funções, nomes de arquivos e números de linha. Os elementos da tabela de símbolos são:
<start address> <End address> <function> [<file name:line number>]
Quando um aplicativo iOS falha, a pilha de falhas no log contém informações binárias ofuscadas. A tabela de símbolos permite analisar reversamente essas informações binárias e convertê-las em nomes de funções e números de linha legíveis, facilitando a localização dos códigos problemáticos.
Importar tabela de símbolos iOS
Antes de executar a análise reversa de símbolos no log de falhas, faça upload da tabela de símbolos. Na plataforma iOS, a tabela de símbolos reside no arquivo dSYM, geralmente nomeado como xxx.app.dSYM. Recomendamos fazer backup do arquivo dSYM sempre que você compilar ou lançar um aplicativo.
Siga as etapas abaixo para fazer upload da tabela de símbolos iOS:
No diretório atual do arquivo dSYM, use o comando Linux
tar -czvf symbol.tgz ./xxx.app.dSYMpara compactar o arquivo dSYM em um pacote tgz.Faça login no console mPaaS, selecione o aplicativo desejado e acesse Mobile Analysis Service > Performance analysis > iOS symbol table management no painel de navegação à esquerda.
-
Clique em Import, insira as informações da tabela de símbolos e faça upload da tabela correspondente na janela pop-up Import symbol table.
Version: número da versão do aplicativo.
-
Module Name: nome do arquivo binário do aplicativo iOS, armazenado na tabela de símbolos para identificar o binário correspondente e permitir a associação entre o arquivo binário do aplicativo e o arquivo da tabela de símbolos.
Insira aqui o moduleName do módulo principal do aplicativo. Por exemplo, se o pacote for Produce.app, o moduleName será Produce.
-
UUID: Identificador Universalmente Único (UUID), um identificador exclusivo gerado automaticamente.
O aplicativo iOS gera um UUID a cada compilação. Para garantir a análise reversa bem-sucedida do log, o UUID na pilha deve corresponder ao UUID na tabela de símbolos; ou seja, ambos devem originar-se da mesma compilação. As informações da pilha de falhas só serão analisadas e restauradas com precisão quando o UUID na tabela de símbolos importada coincidir com o UUID no log de falhas.
Insira aqui o UUID do módulo principal do aplicativo. Se houver mais de um UUID, utilize qualquer um deles. Por exemplo, se existirem duas arquiteturas (armv7 e arm64), haverá dois UUIDs; preencha com qualquer um deles. Na string do UUID, remova o caractere "-" e use apenas letras minúsculas. Exemplo: b7583434dc5e377bb4d8e7b69bf4c1fb.
Upload from URL: insira a URL do arquivo tgz compactado a partir da tabela de símbolos. Caso não exista um arquivo de tabela de símbolos na URL especificada, o sistema retornará uma mensagem de erro.
Clique em Import para importar a tabela de símbolos.
Verifique o status de importação da tabela de símbolos na página de gerenciamento de tabelas de símbolos iOS. O status Done indica importação bem-sucedida, enquanto Failed sinaliza falha na importação. Se a importação falhar, tente novamente seguindo as orientações da mensagem de erro.
Todas as tabelas de símbolos importadas aparecem na página de gerenciamento, onde é possível consultá-las pela versão do aplicativo.
Teste de análise
Valide o arquivo da tabela de símbolos importado por meio de um teste de análise.
Execute as etapas a seguir para realizar o teste:
Na lista de tabelas de símbolos iOS, selecione a tabela importada com sucesso e clique em Parsing test na coluna Operations.
Na coluna Raw log text, insira o log de falhas a ser analisado e clique em Parse log. A coluna Log parsing result exibirá o texto do log analisado. Se a análise reversa falhar, aparecerão a mensagem de erro correspondente e o motivo da falha, como "UUID mismatch".