iOS 10: "[Aplicación] si estamos en el controlador real de precompromiso, en realidad no podemos agregar ninguna nueva valla debido a la restricción de CA"


389

A veces recibo este mensaje en los registros de Xcode 8b3 cuando ejecuto mi aplicación, todo parece funcionar, pero me gustaría saber de dónde proviene. Google no ayudó en absoluto.


2
¿Está llamando al método de delegado UINavigationController: fun navigationController (navigationController: UINavigationController, willShowViewController viewController: UIViewController, animado: Bool) {}?
Norman G

2
willShowViewController nunca se llama, no ...
swalkner

Me pasa lo mismo. Estoy usando SpriteKit y SceneKit y sospecho de ellos.
Howard Lovatt

3
¿Alguien presenta un informe de error? Estoy apunto de.
David DelMonte

1
Por favor, eche un vistazo a esta respuesta. stackoverflow.com/a/39997761/6602495
Sneha

Respuestas:


285

en tu Xcode:

  • Haga clic en el nombre de su esquema activo justo al lado del botón Detener
  • Haga clic en Editar esquema ...
  • en Ejecutar (depurar), seleccione la pestaña Argumentos
  • en Variables de entorno, haga clic en +
  • agregar variable: OS_ACTIVITY_MODE = deshabilitar

captura de pantalla


44
Gracias por la información adicional
amergin

26
Tenga en cuenta que al azar no obtenía ningún resultado NSLog para la consola y lo eliminé nuevamente para solucionarlo. Esta es más de la programación de 'clase alta' a la que estamos sujetos los matones de Apple.
amergin

37
Por lo que vale, recibo este mensaje cada vez que se realiza un cambio de orientación y SI tengo la variable de entorno OS_ACTIVITY_MODE deshabilitada.
user2698617

55
Nota: al agregar esto, no verá NSLogs en la consola también.
niravdesai21

44
¿No es esto como apagar una alarma de incendio?
ScottyBlades

191

Proviene de la +[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]API os_log. No depende de otros componentes / marcos que esté utilizando (solo de UIKit): se reproduce en un proyecto de aplicación limpio de vista única al cambiar la orientación de la interfaz.

Este método consta de 2 partes:

  1. agregar un controlador precompromiso aprobado a la lista de controladores
  2. hacer algún trabajo, eso depende del estado actual de la máquina de estados finitos.

Cuando la segunda parte falla (parece una transición prohibida), imprime el mensaje anterior en el registro de errores. Sin embargo, creo que este problema no es fatal: hay 2 casos de afirmación adicionales en este método, que provocarán un bloqueo en la depuración.

Parece que el radar es lo mejor que podemos hacer.


1
¿Puede, por favor, dar más detalles sobre las herramientas que utilizó para depurar para obtener este nombre de método privado y su estructura?
Oleksandr Karaberov

99
@AlexanderKaraberov puede usar Hopper Disassembler para encontrar texto de advertencia en el marco binario y referencias a este texto desde un método privado.
k06a

También obtengo esto cuando el teclado se desplaza y tengo un controlador suscrito para responder cambiando el tamaño de sus vistas.
yo.ian.g

82

Intente poner lo siguiente en environment variablesel esquema bajorun(debug)

OS_ACTIVITY_MODE = disable

Obtuve esto en el simulador al rotar el iPhone 7 usando el hardware-> rotar elementos de menú. Esta variable de entorno hizo que el mensaje espurio desapareciera.
George D Girton

1
La respuesta de @Foo a continuación es útil porque incluye los detalles de procedimientos.
Kevin Owens el

1
Tampoco imprime el registro de advertencia de restricción
chirag shah

36
OP preguntó de dónde viene el mensaje. Solo decir cómo silenciarlo no es la respuesta correcta.
iCaramba

66
¡La respuesta "IOS_ACTIVITY_MODE = deshabilitar" desactiva TODOS los registros! Simplemente cierre la vista de registro si no desea ver el registro. Respuesta realmente ridícula, ¡increíble que tenga tantos votos! No hace nada para abordar el mensaje real. Nuestras aplicaciones que utilizan mucho los datos principales funcionan bien, estos mensajes y otros comenzaron a aparecer después de una de las últimas actualizaciones de Xcode. Es triste que Apple no pueda resolver este tipo de problemas.
John

13

Podemos silenciarlo de esta manera (el dispositivo y el simulador necesitan valores diferentes):

Agregue el nombre OS_ACTIVITY_MODEy el valor ${DEBUG_ACTIVITY_MODE}y verifíquelo (en Producto -> Esquema -> Editar esquema -> Ejecutar -> Argumentos -> Medio ambiente).

ingrese la descripción de la imagen aquí

Añadir configuración definida por el usuario DEBUG_ACTIVITY_MODE, a continuación, añadir Any iOS Simulator SDKa Debugy establecer su valor a disable(en proyecto -> configuración de generación -> + -> Configuración definida por el usuario)

ingrese la descripción de la imagen aquí


No funcionó para mí: también estoy viendo esto en la consola, a pesar de que ya he desactivado el modo de actividad de depuración como se sugirió anteriormente.
Johan

-1

Para solucionarlo, eliminé la aplicación del simulador.

También corrí Clean primero.

No creo que nada relacionado con la orientación lo haya desencadenado. Lo más importante que cambió antes de que comenzara este síntoma es que un marco Swift comenzó a invocar NSLoghilos de trabajo en lugar del hilo principal.


1
Hacer una limpieza funcionó bien al principio para mí cuando lo ejecuté en el simulador sin rotarlo, pero luego, cuando lo probé nuevamente con un comando de rotación, informó el mismo error.
cheznead

Estoy usando gestos panorámicos y solo obtengo este error al cambiar de orientación.
Jeremy Andrews

-8
OS_ACTIVITY_MODE = disable

Esto también deshabilitará la capacidad de depurar en dispositivos reales (no habrá salida de consola desde dispositivos reales a partir de ese momento).


66
Acaba de copiar una respuesta anterior (con menos detalles)
Ashley Mills

2
en realidad el TL; DR ayuda.
Juan Je García
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.