ios - the - Xcode 8 Breakpoint en archivo no funciona
ver consola en xcode (10)
Tengo un archivo, SignInViewController.swift
, en mi proyecto Xcode que, de la nada, ha comenzado a no detenerse en puntos de interrupción. Tengo un punto de interrupción en viewDidLoad()
y algunos en viewDidAppear()
. Tengo varias llamadas print()
en ambas funciones para asegurarme de que se estén ejecutando. Los puntos de interrupción funcionan bien en otros archivos, incluido AppDelegate.swift
.
Hubo un momento en el que traté de averiguar qué estaba mal cuando noté que mientras estaba construyendo el proyecto, aparecía un error diciendo que la Invalid redeclaration of ''signInViewController.swift''
y luego desaparece antes de que finalice la compilación y la aplicación funcionaría bien , excepto los puntos de interrupción en el archivo. signInViewController.swift
es el nombre antiguo del archivo de hace unos meses antes de SignInViewController.swift
nombre a SignInViewController.swift
. No lo he visto antes hasta que se produjo el problema del punto de interrupción y desde que limpié la carpeta de compilación del proyecto y los datos derivados de Xcode no he podido replicar. Tengo la sensación de que está teniendo en cuenta el problema, pero no estoy seguro de cómo / por qué.
De todos modos, aquí hay cosas que ya he probado. La mayoría de ellos son solo para puntos de interrupción que no funcionan en general, pero creo que debería enumerarlos de todos modos, aunque no sea así:
- Proyecto limpio
- Carpeta de construcción limpia
- Borrar los datos derivados de Xcode
- Asegurarse de que los puntos de interrupción están habilitados (Cmd Y)
- Las configuraciones de compilación están configuradas para depurar
- Mostrar siempre desmontaje habilitado y deshabilitado
- Depuración habilitada en ejecutar config.
Cualquier ayuda sería muy apreciada.
ACTUALIZACIÓN 1 (aún sin suerte):
- Intenté eliminar la preferencia de Xcode como lo sugiere la respuesta de neprocker here
ACTUALIZACIÓN 2 :
He aislado el problema de los puntos de interrupción para ver solo los puntos de interrupción de viewDidLoad()
y viewDidAppear()
en otras partes del archivo están funcionando.
ACTUALIZACIÓN 3 :
Aislado a un bloque de código específico en viewDidLoad()
. viewDidAppear()
sigue sin funcionar.
A veces, los valores pueden haber cambiado en los valores predeterminados del usuario de Xcode. A veces, tuve un problema similar con el depurador deteniéndose en el seguimiento de la pila. Pocas formas de eliminar esto.
1.Delete the Xcode preference
defaults delete com.apple.dt.Xcode
Otro problema podría ser el nivel de optimización para el objetivo, cambiarlo a ninguno se detendrá en el depurador
Lo que me ayudó fue eliminar el archivo Breakpoints_v2.xcbkptlist que se encuentra en el directorio del proyecto (* .xcodeproj) en el directorio: xcuserdata / Fred.xcuserdatad / xcdebugger (reemplaza "Fred" con tu nombre de usuario). Use un programa terminal para ir allí.
No estoy realmente seguro de cómo esto terminó por solucionarlo, pero viewDidLoad()
el problema en un bloque de código específico en viewDidLoad()
. Luego comenté ese código y construí y ejecuté el proyecto. Luego, descomenté el código, lo construí y lo ejecuté de nuevo y los puntos de interrupción funcionaron.
Resolví esto yendo a ''Configuración de compilación'' de mi proyecto Xcode y configurando ''Generar símbolos de depuración'' en ''Sí''
También estaba tratando el mismo problema en xcode 9.
Resolví el problema de la siguiente manera:
Eliminar los valores predeterminados de XCode usando el comando de terminal siguiente
defaults delete com.apple.dt.Xcode.LSSharedFileList defaults delete com.apple.dt.Xcode
Borrar (o eliminar) los Datos Derivados de Xcode de
/Users/[Your Mac Username]/Library/Developer/Xcode/DerivedData
Elimine (o desinstale) Xcode.app de Aplicaciones y luego reinicie la PC
Instalar copia nueva de Xcode 9
[ Obligatorio ] Establezca el permiso de usuario para su proyecto de aplicación como
chmod -R 777 "/Users/[Your Mac Username]/Desktop/TestApp/"
[ donde TestApp es el proyecto de la aplicación que se mantiene en el escritorio ]
Abra el proyecto y verifique que la configuración de compilación esté configurada para depurar
- Asegúrese de que los puntos de interrupción estén habilitados y establezca un punto de depuración en su código