Ocultar registros extraños de Xcode no deseados

Resuelto Hans Knöchel asked hace 54 años • 14 respuestas

Al usar Xcode 8+ y crear un nuevo proyecto en blanco, aparecen los siguientes registros al ejecutar la aplicación:

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

¿Quizás alguien ya encontró una configuración para manejar esto?

Hans Knöchel avatar Jan 01 '70 08:01 Hans Knöchel
Aceptado

Prueba esto:

1 - Desde el menú Xcode abierto: Product> Scheme>Edit Scheme

2 - En su conjunto de variables de entornoOS_ACTIVITY_MODE =disable

Captura de pantalla

iDevzilla avatar Sep 13 '2016 02:09 iDevzilla

Basado en el tweet original de @rustyshelf y la respuesta ilustrada de iDevzilla, aquí hay una solución que silencia el ruido del simulador sin deshabilitar la salida NSLog del dispositivo.

  1. En Producto > Esquema > Editar esquema... > Ejecutar (depurar), establezca la variable de entorno OS_ACTIVITY_MODE en ${DEBUG_ACTIVITY_MODE} para que se vea así:

ingrese la descripción de la imagen aquí

  1. Vaya a la configuración de compilación de su proyecto y haga clic en + para agregar una configuración definida por el usuario denominada DEBUG_ACTIVITY_MODE. Expanda esta configuración y haga clic en + junto a Depurar para agregar un valor específico de la plataforma. Seleccione el menú desplegable y cámbielo a "Cualquier simulador de iOS". Luego establezca su valor en "deshabilitar" para que se vea así:

ingrese la descripción de la imagen aquí

cduhn avatar Sep 23 '2016 01:09 cduhn

OS_ACTIVITY_MODE no funcionó para mí ( puede que haya sido porque escribí disablecomo disabled, pero ¿¡¿no es más natural?!?), o al menos no evitó una gran cantidad de mensajes. Así que aquí está el verdadero problema con las variables de entorno.

https://llvm.org/svn/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp

lldb_private::Error
PlatformDarwin::LaunchProcess(lldb_private::ProcessLaunchInfo &launch_info) {
  // Starting in Fall 2016 OSes, NSLog messages only get mirrored to stderr
  // if the OS_ACTIVITY_DT_MODE environment variable is set.  (It doesn't
  // require any specific value; rather, it just needs to exist).
  // We will set it here as long as the IDE_DISABLED_OS_ACTIVITY_DT_MODE flag
  // is not set.  Xcode makes use of IDE_DISABLED_OS_ACTIVITY_DT_MODE to tell
  // LLDB *not* to muck with the OS_ACTIVITY_DT_MODE flag when they
  // specifically want it unset.
  const char *disable_env_var = "IDE_DISABLED_OS_ACTIVITY_DT_MODE";
  auto &env_vars = launch_info.GetEnvironmentEntries();
  if (!env_vars.ContainsEnvironmentVariable(disable_env_var)) {
    // We want to make sure that OS_ACTIVITY_DT_MODE is set so that
    // we get os_log and NSLog messages mirrored to the target process
    // stderr.
    if (!env_vars.ContainsEnvironmentVariable("OS_ACTIVITY_DT_MODE"))
      env_vars.AppendArgument(llvm::StringRef("OS_ACTIVITY_DT_MODE=enable"));
  }

  // Let our parent class do the real launching.
  return PlatformPOSIX::LaunchProcess(launch_info);
}

Entonces, configurar OS_ACTIVITY_DT_MODE"NO" en las variables de entorno (método GUI explicado en la captura de pantalla de Esquemas en la respuesta principal) hace que funcione para mí.

En cuanto a NSLogser el vertedero de mensajes del sistema, errores y su propia depuración: de todos modos probablemente sea necesario un enfoque de registro real, por ejemplo, https://github.com/fpillet/NSLogger .

O

Beba el nuevo Kool-Aid: http://asciiwwdc.com/2016/sessions/721 https://developer.apple.com/videos/play/wwdc2016/721/ No es sorprendente que haya algunos problemas después de revisar todo API de registro.

APÉNDICE

De todos modos, NSLoges sólo una cuña:

https://developer.apple.com/library/content/releasenotes/Miscellaneous/RN-Foundation-OSX10.12/

NSLog/CFLog

NSLog ahora es solo una corrección de os_log en la mayoría de las circunstancias.

Ahora solo tiene sentido citar la fuente de la otra variable env. Un lugar bastante dispar, esta vez desde las internas de Apple. No estoy seguro de por qué se superponen. [Comentario incorrecto sobre NSLogeliminado]

[Editado el 22 de septiembre]: Me pregunto qué hacen diferente "liberar" y "transmitir" que "depurar". No hay suficiente fuente.

https://github.com/macosforge/libdispatch/blob/8e63547ea4e5abbfe55c0c3064181c4950a791d3/src/voucher.c

e = getenv("OS_ACTIVITY_MODE");
if (e) {
    if (strcmp(e, "release") == 0) {
        mode = voucher_activity_mode_release;
    } else if (strcmp(e, "debug") == 0) {
        mode = voucher_activity_mode_debug;
    } else if (strcmp(e, "stream") == 0) {
        mode = voucher_activity_mode_stream;
    } else if (strcmp(e, "disable") == 0) {
        mode = voucher_activity_mode_disable;
    }
}
BaseZen avatar Sep 19 '2016 20:09 BaseZen

Encuentre los pasos a continuación.

  1. Seleccione Producto => Esquema => Editar esquema o use el acceso directo:CMD + <
  2. Seleccione la Runopción del lado izquierdo.
  3. En la sección Variables de entorno, agregue la variable OS_ACTIVITY_MODE = desactivar

Para obtener más información, encuentre la siguiente representación GIF.

Editar esquema

Ramkrishna Sharma avatar Nov 07 '2016 11:11 Ramkrishna Sharma

Esto todavía no se ha solucionado en Xcode versión 8.0 beta 2 (8S162m) para mí y también aparecen registros adicionales en la consola de Xcode.

** EDITAR 1/08/16: Esto se reconoce en las notas de la versión de Xcode 8 Beta 4 (8S188o) como un problema que aún persiste .

Problemas conocidos en Xcode 8 beta 4 – IDE

Depuración

• Xcode Debug Console muestra registros adicionales de los marcos del sistema al depurar aplicaciones en el Simulador. (27331147, 26652255)

Es de suponer que esto se resolverá con el lanzamiento de GM. Hasta entonces, paciencia y, aunque no es lo ideal, a continuación se muestra una solución alternativa que estoy usando...

Similar a la respuesta anterior, tengo que:

  • anteponga a mis registros de impresión algún tipo de carácter especial (por ejemplo, * o ^ o!, etc., etc.)

  • Luego use el cuadro de búsqueda en la parte inferior derecha del panel de la consola para filtrar los registros de mi consola ingresando el carácter especial elegido para que la consola muestre mis registros de impresión según lo previsto.

consola

Pez avatar Jul 06 '2016 04:07 Pez