Processando arquivos de símbolo no Xcode

285

Fiquei me perguntando se alguém poderia me dizer o que o Xcode está realmente fazendo quando diz: "Processando arquivos de símbolos" depois de conectar o dispositivo?

Captura de tela

Woodstock
fonte
Eu tive que esperar por um longo tempo ... cerca de 30 minutos e a implantação posterior no dispositivo foi bem-sucedida. Talvez o Mac esteja demorando para reconhecer o dispositivo.
Jayprakash Dubey

Respostas:

263

Ele baixa os símbolos (depuração) do dispositivo, para que seja possível depurar em dispositivos com essa versão iOS específica e também simbolizar os relatórios de falhas que ocorreram nessa versão iOS.

Como os símbolos são específicos da CPU, o procedimento acima só funcionará se você tiver importado os símbolos não apenas para um dispositivo iOS específico, mas também para um tipo específico de CPU. Os tipos de CPU atualmente necessários são armv7 (por exemplo, iPhone 4, iPhone 4s), armv7s (por exemplo, iPhone 5) e arm64 (por exemplo, iPhone 5s).

Portanto, se você quiser simbolizar um relatório de falha que ocorreu em um iPhone 5 com armv7s e possuir apenas os símbolos para armv7 para essa versão específica do iOS, o Xcode não será capaz de simbolizar (totalmente) o relatório de falha.

Kerni
fonte
19
Recentemente, descobri que o Xcode não processaria arquivos de símbolos do meu iPad2 ou iPhone4s. Sempre parava no meio do caminho e nunca terminava, nem mesmo depois de meia hora. No final, consegui que funcionasse ... quebrando um cabo conector completamente novo e conectando-o diretamente ao meu Mac Mini (anteriormente eu havia sido conectado através de um cabo de extensão). Concluí que a má conexão REALMENTE mexe com as atualizações de símbolos.
Ash
5
Então, por que não agrupar esses símbolos na distribuição xcode? Por que todo o trabalho de extraí-los do dispositivo?
Matthew Exon
3
Os símbolos para todas as arquiteturas são maiores que 1 GB de tamanho por versão (iOS) e nem sempre há uma atualização do Xcode para cada versão do bugfix. O Xcode está sendo atualizado apenas com atualizações / alterações da API.
Kerni
@VladimirDespotovic O que você quer resolver aqui? Isso não é um problema. Isso precisa ser feito, pois o depurador precisa desses dados e, para simbolização de falhas, isso também é necessário. A questão também não indicava um problema.
Kerni
36

No Xcode versão 6.1.1 (6A2008a), após "Processando arquivos de símbolos", uma pasta contendo símbolos associados ao dispositivo (incluindo versão iOS e tipo de CPU) foi criada em ~ / Library / Developer / Xcode / iOS DeviceSupport / como esta:

insira a descrição da imagem aqui

fujianjin6471
fonte
6
o que estava em (nulo) (nulo)?
Anton Tropashko
6
@AntonTropashko, (null) ((null))na verdade.
Alejandro Iván
6
No meu caso, "(null) ((null))" continha ... nada!
Sjakelien 23/03
7
Como os arquivos Sym são baixados quando necessário, lixeira na maioria das pastas neste local. Ele liberou mais de 24 GB no meu SSD!
Sjakelien 23/03
@Sjakelien Pasta bem rotulada então
Brad Thomas
19

O xCode apenas copia todos os logs de falhas. Se você deseja acelerar: exclua o número de relatórios de falhas após analisá-los, diretamente nesta janela.

Devices -> View Device Logs -> All Logs

captura de tela

WINSergey
fonte
@QLiu Sure. Parece bug, ou os logs são maiores que o esperado.
WINSergey 31/01
Como acessar esses logs? (Eu tenho 0 experiência com xCode)
Ben
@ Ben Janela -> Devices -> Selecionar o dispositivo no lado esquerdo -> feito
WINSergey
4

No meu caso, simbolizar era uma eternidade. Eu forço a reiniciar meu telefone com os botões liga / desliga e home. Agora terminei rapidamente a simbolização e estou começando a executar meu aplicativo via xcode.

Savas Adar
fonte
1

Sei que essa não é uma solução técnica, mas eu tinha o meu iphone conectado ao computador por cabo e desconectando o dispositivo do computador e conectando-o novamente (por cabo novamente) funcionou para mim, pois não consegui resolvê-lo com as soluções que estão disponíveis. fornecido antes.

Francisco Romero
fonte
Isso pode ter sido um momento de sorte ... ou uma reação atrasada a outras ações que você tomou. Eu desconectei e reconectei e ele voltou a esse modo até terminar.
Paul Masri-Stone
0

Ele compara os logs de falha recuperados do dispositivo com a versão arquivada (simbolizada para estar correta) dos seus aplicativos para tentar recuperar onde no seu código ocorreu a falha.

Veja o local do arquivo de símbolo do xcode para obter detalhes

Jerome Diaz
fonte
0

Erro irritante. Eu o resolvi conectando o cabo diretamente ao iPad. Por alguma razão, o processo nunca terminaria se eu tivesse o iPad no suporte de passagem da Apple.

GoldenJoe
fonte
3
É um erro, porque NUNCA seria concluído se eu o tivesse no suporte.
precisa saber é o seguinte
2
Eu reconheço a resposta é mal expressa, mas era realmente certo para mim, conectando-se diretamente à porta USB resolvido para mim, apesar da usb-hub estava funcionando bem para qualquer outra tarefa
Jalone
0

Adicionar a versão do SDK corresponde ao seu iPhone iOS, por exemplo: iOS 10.3

caminho:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport


Está baixando. Quando terminar, tudo bem. Como mostrado na figura:

insira a descrição da imagem aqui

GeekMeng
fonte