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?
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.
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:
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.
@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.
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.
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.
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.
É 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
Respostas:
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.
fonte
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:
fonte
(null) ((null))
na verdade.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.
fonte
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.
fonte
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.
fonte
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
fonte
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.
fonte
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:
fonte