Pregunta Ocultar registros extraños no deseados de Xcode


Al usar Xcode 8+ y crear un nuevo proyecto en blanco, los siguientes registros aparecen cuando se ejecuta 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

Tal vez alguien ya encontró una configuración para manejar esto?


597
2018-06-13 23:39


origen


Respuestas:


Prueba esto:

1- Desde el menú de Xcode, abra: Producto> Esquema> Editar esquema

2- En el conjunto de variables de entorno OS_ACTIVITY_MODE = disable

Screenshot


1327
2017-09-13 02:11



Construyendo sobre el original Pío de @rustyshelf, y la respuesta ilustrada de iDevzilla, aquí hay una solución que silencia el ruido del simulador sin desactivar 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í:

enter image description here

  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 llamada 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". A continuación, establezca su valor en "deshabilitar" para que se vea así:

enter image description here


304
2017-09-23 01:09



OS_ACTIVITY_MODE no funcionó para mí ( mayo Han sido porque me escribí disable como disabled, pero ¿no es eso más natural?!?), o al menos no evitó una gran cantidad de mensajes. Así que aquí está el verdadero trato 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);
}

Así que configurando OS_ACTIVITY_DT_MODE a "NO" en las variables de entorno (método GUI explicado en la captura de pantalla de Schemes en la respuesta principal) hace que funcione para mí.

Hasta NSLog siendo el vertedero de mensajes del sistema, errores y su propia depuración: probablemente se requiera un enfoque de registro real de todos modos, p. https://github.com/fpillet/NSLogger .

O

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

APÉNDICE

De todas formas, NSLog es solo una cuña:

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

NSLog / CFLog

NSLog ahora es solo un complemento para os_log en la mayoría de las circunstancias.

Ahora tiene sentido ahora citar la fuente de la otra variable env. Un lugar bastante diferente, esta vez de los internos de Apple. No estoy seguro de por qué se superponen. [Comentario incorrecto sobre NSLog remoto]

[Editado el 22 de septiembre]: me pregunto qué hacen "release" y "stream" de forma diferente a "debug". 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;
    }
}

70
2017-09-19 20:04



Un tweet tenía la respuesta para mí: https://twitter.com/rustyshelf/status/775505191160328194

Para evitar que el simulador Xcode 8 iOS inicie sesión como loco, configure una variable de entorno OS_ACTIVITY_MODE = disable en su esquema de depuración.

Funcionó.


63
2017-09-13 05:52



Esto todavía no está solucionado en Xcode Version 8.0 beta 2 (8S162m) para mí y los registros adicionales también están apareciendo en la consola Xcode

** EDIT 8/1/16: Esto ha sido reconocido en el notas de lanzamiento para 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 el registro extra de los marcos del sistema cuando    depurando aplicaciones en el simulador. (27331147, 26652255)

Presumiblemente, esto se resolverá con la publicación de GM. Hasta entonces, la paciencia y, aunque no es ideal, pero una solución que estoy usando está por debajo ...

Al igual que en la respuesta anterior, tengo que:

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

  • A continuación, use el cuadro de búsqueda en la parte inferior derecha del panel de la consola para filtrar los registros de la consola ingresando el carácter especial que eligió para que la consola muestre mis registros de impresión como estaba previsto.

console


32
2017-07-06 04:54



Por favor, encuentre los pasos a continuación.

  1. Seleccione Product => Scheme => Edit Scheme o use un atajo: CMD + <
  2. Selecciona el Run opción desde el lado izquierdo.
  3. En la sección Variables del entorno, agregue la variable OS_ACTIVITY_MODE = deshabilitar

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

Edit Scheme


28
2017-11-07 11:14



Mi solución es usar el comando depurador y / o Mensaje de registro en puntos de corte.

enter image description here

Y cambie la salida de la consola de Todos los resultados a Salida del depurador me gusta

enter image description here


20
2017-07-07 02:47



Esto está relacionado con un problema conocido con el registro encontrado en Notas de la versión de Xcode 8 Beta (También le pregunté a un ingeniero en WWDC).

Al depurar aplicaciones WatchOS en el simulador Watch, el sistema operativo puede producir un exceso   cantidad de registro inútil (26652255)

Actualmente no hay ninguna solución disponible, debe esperar una nueva versión de Xcode.

EDITAR 7/5/16: Esto es supuestamente arreglado desde Xcode 8 Beta 2:

Resuelto en Xcode 8 beta 2 - IDE

Depuración

  • Al depurar una aplicación en el simulador, los registros están visibles. (26457535)

Notas de la versión de Xcode 8 Beta 2


13
2018-06-14 01:46



Bien. Parece que hay mucho alboroto acerca de este, así que les daré a todos una manera de persistir sin usar ese truco de esquema. Me referiré específicamente al simulador de iOS, pero también podría ser necesario aplicarlo para el TV Sim, que se encuentra en un directorio diferente.

El problema que está causando todo esto son listas ubicadas dentro del directorio de Xcode. Hay un proceso que se inicia llamado configd_sim cuando se inicia el Sim que lee los plist y muestra información de depuración si los plists especifican que deben registrarse.

Los plists se encuentran aquí:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Preferences/Logging/Subsystems 

Si está jugando con una versión beta, tenga en cuenta que el directorio será diferente.

Verá numerosas listas en este directorio. Ahora, crea y ejecuta tu aplicación y observa los registros. Está buscando el contenido seguido inmediatamente por el subsistema: parte. Es el nombre que sigue inmediatamente que representa el plist problemático correspondiente.

enter image description here

Desde allí, modifique la lista para eliminar la clave / valor de depuración [Nivel], que es un diccionario que contiene el "Enable" => "Default" clave / valor ... o simplemente elimine el plist. Tenga en cuenta que tendrá que ser root para hacer cualquiera de estos ya que están ubicados en la aplicación Xcode.

el plutil -p comando también podría ser útil para usted. es decir

plutil -p /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk/System/Library/Preferences/Logging/Subsystems/com.apple.BackBoardServices.fence.plist

Esto me dio una de las listas problemáticas que contenía:

{ "DEFAULT-OPTIONS" => { "Level" => { "Enable" => "Default" }}}

Buena suerte :]


13
2017-09-18 15:05



Esto ya no es un problema en xcode 8.1 (Versión probada 8.1 beta (8T46g)). Puedes eliminar el OS_ACTIVITY_MODE variable de entorno de su esquema.

https://developer.apple.com/go/?id=xcode-8.1-beta-rn 

Depuración

• Xcode Debug Console ya no muestra el registro adicional del sistema   marcos cuando se depuran aplicaciones en el simulador. (26652255,   27331147)


7
2017-10-06 03:59