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.
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:
agregar un controlador precompromiso aprobado a la lista de controladores
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.
¿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)
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).
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)
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.
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).
willShowViewController
nunca se llama, no ...Respuestas:
en tu Xcode:
fuente
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:
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.
fuente
Intente poner lo siguiente en
environment variables
el esquema bajorun(debug)
fuente
Podemos silenciarlo de esta manera (el dispositivo y el simulador necesitan valores diferentes):
Agregue el nombre
OS_ACTIVITY_MODE
y el valor${DEBUG_ACTIVITY_MODE}
y verifíquelo (en Producto -> Esquema -> Editar esquema -> Ejecutar -> Argumentos -> Medio ambiente).Añadir configuración definida por el usuario
DEBUG_ACTIVITY_MODE
, a continuación, añadirAny iOS Simulator SDK
aDebug
y establecer su valor adisable
(en proyecto -> configuración de generación -> + -> Configuración definida por el usuario)fuente
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
NSLog
hilos de trabajo en lugar del hilo principal.fuente
Esto también deshabilitará la capacidad de depurar en dispositivos reales (no habrá salida de consola desde dispositivos reales a partir de ese momento).
fuente