Deshabilitar los posts de error de restricción de autolayout en la salida de la console de debugging en Xcode

¿Hay alguna forma de (temporalmente) deshabilitar los posts de error / advertencia de reproducción automática:

Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) ( "<NSLayoutConstraint:0x170098420 H:[UIView:0x15c62c100(2)]>", "<NSLayoutConstraint:0x170098600 UIView:0x15c6294f0.leading == UIView:0x15c628d40.leadingMargin - 8>", "<NSLayoutConstraint:0x170098650 H:[UIView:0x15c6294f0]-(0)-[UIView:0x15c62b750]>", "<NSLayoutConstraint:0x1700986a0 UIView:0x15c62b750.width == UIView:0x15c6294f0.width>", "<NSLayoutConstraint:0x1700986f0 UIView:0x15c628d40.trailingMargin == UIView:0x15c62b750.trailing - 8>", "<NSLayoutConstraint:0x170098880 H:[UIView:0x15c6294f0]-(0)-[UIView:0x15c62c100]>", "<NSLayoutConstraint:0x1700988d0 UIView:0x15c628d40.centerX == UIView:0x15c62c100.centerX + 1>" ) Will attempt to recover by breaking constraint <NSLayoutConstraint:0x170098420 H:[UIView:0x15c62c100(2)]> Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful. 

¿Alguna descomposition y realmente hay una manera:

Rápido

 NSUserDefaults.standardUserDefaults().setValue(false, forKey: "_UIConstraintBasedLayoutLogUnsatisfiable") 

C objective

 [[NSUserDefaults standardUserDefaults] setValue:@(NO) forKey:@"_UIConstraintBasedLayoutLogUnsatisfiable"]; 

Ahora solo recibirá una notificación de que "_UIConstraintBasedLayoutLogUnsatisfiable está desactivado".

Obligatorio recordatorio para cualquiera que lea esto: esto debería ser el último recurso, para get consejos sobre la debugging y la solución de problemas de restricciones, consulte las sesiones "Misterios de layout automático" de WWDC: parte 1 y parte 2 .

Solución Swift 3.0:

 //Hide Autolayout Warning UserDefaults.standard.setValue(false, forKey:"_UIConstraintBasedLayoutLogUnsatisfiable") 

He intentado resolver esto usando lldb y encontré una solución:

  1. Cree un punto de interrupción simbólico para el símbolo UIViewAlertForUnsatisfiableConstraints en el module UIKit.
  2. Como acción de punto de interrupción, agregue el command depurador "retorno de hilo"
  3. Agregue un segundo command de depurador: "c"
  4. Inhabilitar "Continuar automáticamente después de evaluar acciones"

Si su aplicación encuentra un problema de layout, la ejecución está en pausa. Con la instrucción "retorno de hilo", la function UIViewAlertForUnsatisfiableConstraints que imprime el error se ve obligada a regresar antes de que el post de advertencia se imprima en la console.

Con el command "c", continúa la ejecución de su aplicación (Nota: "Continuar automáticamente después de evaluar las acciones" de alguna manera no funciona en este caso)

Sin embargo, con estas acciones automáticas es probable que el punto de ruptura se comporte de manera extraña si se golpea dos veces seguidas, lo que hará que la aplicación se bloquee. Para resolver esto puede eliminar las acciones de punto de interrupción e ingresar los commands manualmente cuando el depurador pausa la ejecución del progtwig.

para cualquiera que se pregunte cómo hacer esto macOS / osx con AppKit / Cocoa

 UserDefaults.standard.set(false, forKey: "NSConstraintBasedLayoutLogUnsatisfiable") UserDefaults.standard.set(false, forKey: "__NSConstraintBasedLayoutLogUnsatisfiable")