Ao usar o Xcode 8+ e criar um novo projeto em branco, os seguintes logs aparecem ao executar o aplicativo:
2016-06-13 16:33:34.406093 TestiOS10[8209:100611] bundleid: com.appc.TestiOS10, enable_level: 0, persist_level: 0, propagate_with_activity: 0
2016-06-13 16:33:34.406323 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.409564 TestiOS10[8209:100611] subsystem: com.apple.UIKit, category: HIDEvents, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.504117 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.548023 TestiOS10[8209:100607] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.568458 TestiOS10[8209:100608] subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
Talvez alguém já tenha encontrado uma configuração para lidar com isso?
Respostas:
Tente o seguinte:
1- No menu Xcode, abra: Produto> Esquema> Editar esquema
2- Em suas variáveis de ambiente, defina
OS_ACTIVITY_MODE
=disable
fonte
NSLog
s de um dispositivo real para mim ... #Com base no tweet original do @rustyshelf e resposta ilustrada do iDevzilla, aqui está uma solução que silencia o ruído do simulador sem desativar a saída NSLog do dispositivo.
fonte
disable
pordefault
.OS_ACTIVITY_MODE não funcionou para mim ( pode ter sido porque eu digitei
disable
comodisabled
, mas não é mais natural?!?), Ou pelo menos não impedi uma grande quantidade de mensagens. Então aqui está o verdadeiro negócio com as variáveis de ambiente.https://llvm.org/svn/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
Portanto, definir
OS_ACTIVITY_DT_MODE
"NÃO" nas variáveis de ambiente (método GUI explicado na captura de tela de Esquemas na resposta principal) faz com que funcione para mim.No que diz respeito
NSLog
ao depósito de mensagens do sistema, erros e sua própria depuração: provavelmente é necessária uma abordagem de registro real, por exemplo, https://github.com/fpillet/NSLogger .OU
Beba o novo Kool-Aid: http://asciiwwdc.com/2016/sessions/721 https://developer.apple.com/videos/play/wwdc2016/721/ Não é de surpreender que haja alguns problemas depois de revisar toda a API de log.
TERMO ADITIVO
Enfim,
NSLog
é apenas um calço:https://developer.apple.com/library/content/releasenotes/Misc Miscellaneous/RN-Foundation-OSX10.12/
Agora faz sentido citar a fonte para a outra variável env. Um lugar bastante díspar, desta vez dos internos da Apple. Não sei por que eles estão sobrepostos. [Comentário incorreto sobre
NSLog
removido][Editado em 22 de setembro]: Gostaria de saber o que "release" e "stream" fazem diferente de "debug". Fonte insuficiente.
https://github.com/macosforge/libdispatch/blob/8e63547ea4e5abbfe55c0c3064181c4950a791d3/src/voucher.c
fonte
os_log
informalmente como o novo Kool Aid.Um tweet tinha a resposta para mim - https://twitter.com/rustyshelf/status/775505191160328194
Para impedir que o Xcode 8 iOS Simulator faça logon como um louco, defina uma variável de ambiente OS_ACTIVITY_MODE = disable no seu esquema de depuração.
Funcionou.
fonte
disable
pordefault
.Encontre os passos abaixo.
CMD + <
Run
opção do lado esquerdo.Para mais informações, consulte a representação GIF abaixo.
fonte
disable
pordefault
.Isso ainda não foi corrigido no Xcode Versão 8.0 beta 2 (8S162m) para mim e logs extras também estão aparecendo no console do Xcode** EDIT 1/8/16: Isso foi reconhecido nas notas de versão do Xcode 8 Beta 4 (8S188o) como um problema ainda persistente .
Presumivelmente, isso será resolvido pelo lançamento da GM. Até então, paciência e, embora não seja o ideal, mas uma solução alternativa que estou usando está abaixo ...
Semelhante à resposta anterior, estou tendo que:
prefixo meus logs de impressão com algum tipo de caractere especial (por exemplo, * ou ^ ou! etc etc)
Em seguida, use a caixa de pesquisa na parte inferior direita do painel do console para filtrar meus logs do console, inserindo o caractere especial escolhido para fazer com que o console exiba meus logs de impressão conforme pretendido
fonte
Minha solução é usar o comando debugger e / ou a mensagem de log nos pontos de interrupção.
E mude a saída do console de All Output para Debugger Output como
fonte
Bem. Parece haver muita comoção sobre esse assunto, então darei a todos uma maneira de persistir sem usar esse truque de esquema. Abordarei o iOS Simulator especificamente, mas isso também pode ser necessário para o TV Sim, que está localizado em um diretório diferente.
O problema que está causando tudo isso são listas localizadas no diretório Xcode. Há um processo iniciado chamado configd_sim quando o Sim é iniciado, que lê as listas e imprime as informações de depuração, se as listas especificarem que devem ser registradas.
As listas estão localizadas aqui:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Preferences/Logging/Subsystems
Se você está brincando com uma versão beta, observe que o diretório será diferente.
Você verá inúmeras listas neste diretório. Agora, crie e execute seu aplicativo e observe os logs. Você está procurando o conteúdo imediatamente seguido pelo subsistema: parte. É o nome imediatamente a seguir que representa a lista problemática correspondente.
A partir daí, modifique o plist para eliminar a chave / valor [Level] de depuração, que é um dicionário que contém o
"Enable" => "Default"
chave / valor ... ou simplesmente exclua o plist. Observe que você precisará ser root para executar uma dessas opções, pois elas estão localizadas no aplicativo Xcode.o
plutil -p
comando também pode ser útil para você. ieIsso me deu um dos argumentos problemáticos que continham:
{ "DEFAULT-OPTIONS" => { "Level" => { "Enable" => "Default" }}}
Boa sorte :]
fonte
2016-09-23 15:09:21.354686 ProductName[8823:191206][] tcp_connection_start 3 starting
Isso está relacionado a um problema conhecido com o registro encontrado nas Notas da versão beta do Xcode 8 (também foi solicitado a um engenheiro da WWDC).
No momento, não há uma solução alternativa disponível. Você deve aguardar uma nova versão do Xcode.
EDIT 7/5/16: supostamente foi corrigido a partir do Xcode 8 Beta 2:
Notas da versão do Xcode 8 Beta 2
fonte
Isso não é mais um problema no xcode 8.1 (versão testada 8.1 beta (8T46g)) . Você pode remover o
OS_ACTIVITY_MODE
variável de ambiente do seu esquema.https://developer.apple.com/go/?id=xcode-8.1-beta-rn
fonte
[MC] Reading from private effective user settings.
em um novo projeto fictício em branco Arquivo> Novo> Projeto.No Xcode 10, a
OS_ACTIVITY_MODE
variável comdisable
(oudefault
) valor também desliga,NSLog
não importa o quê.Portanto, se você quiser se livrar do ruído do console, mas não dos seus próprios logs, tente o bom e velho em
printf("")
vez do NSLog, pois ele não é afetado peloOS_ACTIVITY_MODE
=disable
.Mas é melhor conferir a nova
os_log
API aqui .fonte
Esta solução está funcionando para mim:
⌘
+/
)Isso irá despejar todos os dados de depuração e também os seus NSLogs.
Para filtrar apenas suas instruções NSLog:
NSLog(@"^ Test Log")
Isto é o que você deve obter:
fonte