Há algum registro de travamento gerado pelo iPhone Simulator?
o Simulador trava muito, mas não deixa rastros no Console ... o registro de travamento será útil.
Há algum registro de travamento gerado pelo iPhone Simulator?
o Simulador trava muito, mas não deixa rastros no Console ... o registro de travamento será útil.
Respostas:
O console mostrará a NSLog()
saída de um aplicativo em execução no simulador. Os logs de travamento são salvos em arquivo.
Eu encontrei alguns no meu diretório inicial em
~/Library/Logs/DiagnosticReports/
Eles têm uma extensão de arquivo de .crash
Algo que ainda não descobri é como fazer com que eles sejam gerados, mesmo que o depurador pegue o EXC_BAD_ACCESS
sinal.
Atualizar
Atualmente, (OSX 10.11.6), os registros .crash ~/Library/Logs/DiagnosticReports
são quando o próprio emulador trava . Os registros de falha de um aplicativo (mas o dispositivo do emulador ainda está funcionando bem) estão em:
~ / Library / Logs / CoreSimulator
Por falha, há uma subpasta com um id único. Classifique por data, para que sua falha recente seja a primeira subpasta. Dentro disso, comece olhando para stderr.log
e system.log
.
Também diretamente abaixo de CoreSimulator
, consulte CoreSimulator.log
e Simulator.log
.
~/Library/Logs/DiagnosticReports/
Tenho certeza de que você pode ver isso no aplicativo OS X Console localizado em Utilitários. Se eu estiver errado, porém, certifique-se de votar em mim para que eu exclua isso.
ATUALIZAR:
Especificamente (conforme OSX 10.11.6),
Quando um aplicativo falha no emulador, uma subpasta (com um ID exclusivo) é adicionada a:
~ / Library / Logs / CoreSimulator
Dentro disso, comece examinando stderr.log
e system.log
.
Quando o próprio emulador falha, uma subpasta é adicionada a:
~ / Library / Logs / DiagnosticReports
Não confunda este caminho com
/ Biblioteca / Logs
(falta ~
no início), que tem relatórios diferentes sobre o seu mac.
Aqui está algo que funcionou para mim em um caso especial ... Meu aplicativo estava travando com o SIGKILL ao encerrar. Eu veria a exceção em main.m por alguns segundos e, em seguida, o aplicativo terminaria de encerrar - portanto, sem chance de obter o rastreamento de volta.
Fiz muitas pesquisas sobre “onde o simulador armazena seus logs de travamento” e nunca consegui encontrar uma resposta. No entanto, o seguinte truque foi muito útil e fui capaz de obter o registro de falhas na hora:
Basicamente, abra /Applications/Utilities/CrashReporterPrefs.app e altere a configuração para “Desenvolvedor”. Isso fará com que o CrashReporter exiba um pop-up com o log de travamento após o travamento do aplicativo.
Eu encontrei isso na seção “Visualizando o console do simulador iOS e logs de falha” neste documento da Apple: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application. html
Isso é muito mais confiável. Em apenas algumas etapas, consegui encontrar o número da linha de origem e o nome do método:
Os logs de travamento aparecerão em ~ / Library / Logs / CrashReporter.
Quando o Xcode obtém logs de travamento de um dispositivo conectado, ele os armazena em subpastas de ~ / Library / Logs / CrashReporter / MobileDevice