iOS (iPhone, iPad, iPodTouch) visualiza o terminal de registro do console em tempo real
123
Existe uma maneira de visualizar o log do console em tempo real para exibir o NSLog e outras mensagens de depuração de maneira em tempo real, como o adb logcat?
No Xcode 6.4, vejo um botão dizendo "Exibir registros do dispositivo", mas que me fornece registros de falhas. Não vejo uma maneira de obter o log do console.
Chris Prince
4
Eu adicionei uma captura de tela com o ícone de triângulo para cima.
Marián Černý
1
printinstruções não vão para o log, apenas para stdout. Use em NSLogvez disso. Ou talvez seja possível redirecionar stdoutpara um arquivo com algum código adicionado. Os travamentos são registrados e podem ser acessados usando o botão "Exibir registros do dispositivo".
Marián Černý
3
Este botão foi desativado no xCode 9.3. Agora ele tem um botão "Console.app", que faz muito mais sentido.
RustyMagnet 9/04
79
EDIT: Use a solução @cbowns - o deviceconsole é compatível com iOS9 e muito mais fácil de usar.
Este é um programa de código aberto que exibe o log do sistema do iDevice no Terminal (de maneira semelhante à cauda -F). Não é necessário jailbreak, e a saída é totalmente aceitável, para que você possa filtrar para ver apenas a saída do seu programa. O que é particularmente bom nessa solução é que você pode visualizar o log, independentemente de o aplicativo ter sido iniciado ou não no modo de depuração do XCode.
Parece que isso não funciona com o simulador do iOS. Vadio. No device found, is it plugged in?
precisa saber é o seguinte
Não pode funcionar no iOS10. "usbmuxd_send: Erro -1 ao enviar: Tubo quebrado" Como resolvê-lo?
Victor Choy
2
Quando executo o idevicesys sem o sudo, recebo um erro enigmático sobre "Não foi possível iniciar o serviço com.apple.syslog_relay". Talvez dependa de como você o instala ou algo assim.
Bjorn Roche
Faça isso se ele não está funcionando para você ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet
77
Duas opções:
O libimobiledevice é instalável via homebrew e funciona muito bem. Sua idevicesyslogferramenta funciona de maneira semelhante a deviceconsole(abaixo) e suporta a exibição sem fio do syslog do seu dispositivo (!)
brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>
com o dispositivo conectado via USB ou disponível na rede local sem fio.
A partir de 2013: deviceconsole de rpetrich é uma solução muito menos wacked-out do que ideviceconsole acima. Meu fork é compilado e executado no Xcode 5 imediatamente, e a ação Build instala o binário /usr/local/binpara facilitar o uso.
Como informações adicionais úteis, eu as uso no seguinte estilo, o que facilita a localização do dispositivo que desejo no meu histórico de shell e remove as >linhas desnecessárias que são deviceconsoleimpressas.
Obrigado por este post. É exatamente o que eu estava procurando. Mal posso esperar para adicionar o iOS à minha ferramenta LogCat móvel da GUI: github.com/yepher/LogCat
Yepher
2
Isso é incrível - levou 2 minutos para compilar e executar. Essa deve ser a resposta aceita.
Nick Farina
Esta é uma solução adorável. E só queria acrescentar que a coleção ainda trabalha para iOS8 (como deveria!)
Kelly
1
@BugaBuga Verifique se você está usando as últimas libimobiledevice. (Wired e visualização de log sem fios estão a trabalhar com o meu Mac em 10.11 e meu iPhone no iOS 10.2)
é interessante, mas não me permite escolher qual dispositivo exibir o log do console se eu tiver vários conectados ao Mac.
leolobato
tão simples e funciona muito bem no iOS 12, fico frustrado ao saber como o registro deve ser simples para um desenvolvedor e acabo aqui. Obrigado Peter
FreeAppl3 13/03/19
por que não Console.app[que é lançado originalmente no macOS]?
Sim ... mas, por algum motivo, o console no Xcode Organizer é menos em tempo real porque está dentro de uma janela da GUI. Eu estava esperando por uma maneira de invocar o shell no dispositivo diretamente para tail -f <logfilename>
Arunabh Das
Você só pode obter um shell no dispositivo se estiver com jailbreak.
progrmr 02/09
Obrigado progrmr. Gostaria de aceitar sua resposta como a resposta correta. Você também pode postar links para obter instruções sobre como obter um shell em um dispositivo com jailbreak? Obrigado!!
Arunabh Das
@ArunabhDas Por favor, considere alterar a resposta aceita pela resposta idevicesyslog de Ben Clayton. Sua solução era exatamente o que eu procurava para depurar compras no aplicativo com um aplicativo iOS usando a plataforma CoronaSDK. O Xcode Organizer era lento e complicado para visualizar informações de log.
Anthony F
5
dispositivo> a saída do terminal está no aplicativo de configuração do iPhone
@ ThomasW: Infelizmente, o Apple Configurator parece não ter a capacidade de visualizar os logs do dispositivo, como o iPhone Configuration Utility faz / fez.
Use o dup2 para redirecionar todos os STDERR e STDOUT para um arquivo e, em seguida, "tail -f" (esse último é mais um simulador, pois você fica com o mesmo problema de seguir um arquivo no dispositivo).
Portanto, para obter o 2º, você só precisa instalar o syslogd e o OpenSSH a partir do Cydia, reinicie o necessário após a inicialização do syslogd; Agora, basta abrir uma sessão ssh no seu dispositivo (via terminal ou massa no Windows) e digite "tail -f / var / log / syslog". E pronto, log do sistema sem fio em tempo real.
Se você quiser experimentar o 3º basta pesquisar on-line por "dup2", é uma chamada do sistema.
Para visualizar o console do seu dispositivo iOS no Safari no seu Mac (apenas Mac aparentemente):
No seu dispositivo iOS, vá para Configurações> Safari> Avançado e ative o Web Inspector
No seu dispositivo iOS, carregue sua página da web no Safari
Conecte seu dispositivo diretamente ao seu Mac
No seu Mac, se você ainda não tiver o menu Desenvolvedor do Safari ativado, vá para Preferências> Avançado e selecione "Mostrar menu Desenvolvimento na barra de menus"
No seu Mac, vá para Desenvolver> [nome do seu dispositivo iOS]> [sua página da web]
O Inspetor do Safari aparecerá mostrando um console para o seu dispositivo iOS.
Utilities/Console.app
?Respostas:
A solução documentada pela Apple nas Perguntas e respostas técnicas QA1747 Depurando aplicativos iOS implantados para Xcode 6 é:
fonte
print
instruções não vão para o log, apenas parastdout
. Use emNSLog
vez disso. Ou talvez seja possível redirecionarstdout
para um arquivo com algum código adicionado. Os travamentos são registrados e podem ser acessados usando o botão "Exibir registros do dispositivo".EDIT: Use a solução @cbowns - o deviceconsole é compatível com iOS9 e muito mais fácil de usar.
Este é um programa de código aberto que exibe o log do sistema do iDevice no Terminal (de maneira semelhante à cauda -F). Não é necessário jailbreak, e a saída é totalmente aceitável, para que você possa filtrar para ver apenas a saída do seu programa. O que é particularmente bom nessa solução é que você pode visualizar o log, independentemente de o aplicativo ter sido iniciado ou não no modo de depuração do XCode.
Aqui está como:
Pegue o binário libimobiledevice para Mac OS X na minha conta do github em https://github.com/benvium/libimobiledevice-macosx/zipball/master
Siga as instruções de instalação aqui: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md
Conecte seu dispositivo, abra Terminal.app e digite:
Up exibe uma exibição em tempo real do log do sistema do dispositivo.
Por ser um aplicativo de console, você pode filtrar o log usando comandos unix, como grep
Por exemplo, veja todas as mensagens de log de um aplicativo específico:
Retirado do meu blog em http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
fonte
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Duas opções:
O libimobiledevice é instalável via homebrew e funciona muito bem. Sua
idevicesyslog
ferramenta funciona de maneira semelhante adeviceconsole
(abaixo) e suporta a exibição sem fio do syslog do seu dispositivo (!)Eu escrevi mais sobre isso no Tumblr tl; dr:
com o dispositivo conectado via USB ou disponível na rede local sem fio.
A partir de 2013: deviceconsole de rpetrich é uma solução muito menos wacked-out do que ideviceconsole acima. Meu fork é compilado e executado no Xcode 5 imediatamente, e a ação Build instala o binário
/usr/local/bin
para facilitar o uso.Como informações adicionais úteis, eu as uso no seguinte estilo, o que facilita a localização do dispositivo que desejo no meu histórico de shell e remove as
>
linhas desnecessárias que sãodeviceconsole
impressas.fonte
libimobiledevice
. (Wired e visualização de log sem fios estão a trabalhar com o meu Mac em 10.11 e meu iPhone no iOS 10.2)brew install --HEAD libimobiledevice
. Trabalhou para mim.Basta abrir o aplicativo
Console.app
no mac osX.Você pode encontrá-lo em
Applications
>Utilities
>Console
.No lado esquerdo do aplicativo, todos os seus dispositivos conectados estão listados.
fonte
Experimente o console iOS gratuito . Basta baixar, iniciar, conectar seu dispositivo - e pronto!
fonte
Console.app
[que é lançado originalmente no macOS]?Pode ser o que você está procurando: Xcode Organizer
fonte
dispositivo> a saída do terminal está no aplicativo de configuração do iPhone
aqui: http://support.apple.com/kb/DL1465
fonte
Você tem três opções:
Portanto, para obter o 2º, você só precisa instalar o syslogd e o OpenSSH a partir do Cydia, reinicie o necessário após a inicialização do syslogd; Agora, basta abrir uma sessão ssh no seu dispositivo (via terminal ou massa no Windows) e digite "tail -f / var / log / syslog". E pronto, log do sistema sem fio em tempo real.
Se você quiser experimentar o 3º basta pesquisar on-line por "dup2", é uma chamada do sistema.
fonte
Para visualizar o console do seu dispositivo iOS no Safari no seu Mac (apenas Mac aparentemente):
O Inspetor do Safari aparecerá mostrando um console para o seu dispositivo iOS.
fonte
Como alternativa, você pode usar uma ferramenta de log na tela , como ticker-log, para visualizar logs sem ter acesso (conveniente) ao console.
fonte