Xcode atascado en la indexación

116

Un proyecto en el que he estado trabajando durante 2 meses dejó de funcionar sin ninguna razón porque Xcode se atascó en "Indexación". Ya no puedo construir el proyecto. Si intento compilar, Xcode se congela y tengo que forzar el cierre. Esto sucede solo con este proyecto.

Intenté limpiar todos los datos derivados pero no ayudó.

Estoy usando Xcode 4.5.2.

¿Algunas ideas?

tomDev
fuente
¿El proyecto está asociado con algún tipo de control de versiones? Cuando está vinculado con un repositorio, tiende a seguir verificando regularmente el estado de la fuente y luego indexa los archivos. Si su proyecto es grande, esto podría hacer que se atasque en la indexación.
Gibertoni
El proyecto no es tan grande. Hoy agregué el framework GameKit, pero funcionó muy bien todo el día. Cuando estaba a punto de terminar de configurar el Game Center, comenzó el problema. Digo "Indexación | Procesado 3 de 4 archivos". A veces "0 de 1 archivo", a veces 83 de 84 archivos ... Supongo que tendré que crear un nuevo proyecto y copiar y pegar prácticamente todo. Serán un par de horas ...
tomDev
2
Apple y su genialidad tienen el mismo problema en xcode 5
Roma-MT
2
Estoy enfrentando este problema en Xcode 9.1. Después de 4 años todavía tienen el mismo problema: |
Sabri Meviş
3
Xcode 10 GM también
QED

Respuestas:

163
  1. Abra su carpeta de proyecto.
  2. Busque el archivo ProjectName.xcodeproj.
  3. Haga clic con el botón derecho en Copiar y pegar en lugar seguro.
  4. Haga clic con el botón derecho en Mostrar contenido del paquete.
  5. Busque el archivo project.xcworkspace y elimine ese archivo.
  6. Vuelva a abrir su proyecto y limpie y reconstruya.

Si su problema no se resuelve, reemplace el archivo con su archivo de respaldo.

Mistry Pratik
fuente
1
No se puede encontrar el archivo project.xcworkspace dentro del archivo * .xcodeproj en xcode 6.2. La respuesta de @ aleksandar-vacic funcionó para mí.
Kie
xcode todavía parece estar atascado en "indexar | esperando xcodebuild", sin embargo, se construye con éxito cuando presiono reproducir, así que eso es algo.
chiliNUT
3
¿Podría explicarnos para qué sirve este archivo / cómo se relaciona con el problema en cuestión?
de.
@marlonpya Supongo que estás trabajando con cocoapods, en ese caso, el archivo del espacio de trabajo está separado del que estoy hablando. Aquí estoy hablando del archivo dentro del archivo .project. Espero que esto ayude, pero siempre haga una copia de seguridad antes de cambiar cualquier cosa en el archivo del proyecto o en los archivos del espacio de trabajo.
Pratik Mistry
Mientras usa cocoapods, siga las mismas instrucciones y abra la carpeta raíz. Archivo .xcworkspace
Leap Hawk
70
  1. Cierra ese proyecto de Xcode
  2. Abra Xcode Organizer, encuentre el proyecto problemático
  3. Eliminar la carpeta de datos derivados en el organizador
  4. Cerrar / volver a abrir Xcode

Nuking Derived Data es lo primero que debe intentar en todos los casos de mal comportamiento de Xcode

Aleksandar Vacić
fuente
9
Tenga en cuenta que en Xcode 6.4 debe ir a Ventana → Proyectos en lugar de Organizador.
kennytm
Solución mucho más simple que la respuesta aceptada, ¡gracias!
Tim
8
Los datos derivados están en ~ / Library / Developer / Xcode / DerivedData / en mi máquina.
Suragch
23

Tuve este problema exacto, fue causado por un literal de matriz de 20 elementos. Tuve que cambiar a una sintaxis diferente. Bastante tonto.

Jehan
fuente
4
Lo mismo para mi. Funciona para array 4x4. Array 6x6 fue demasiado para xcode ... drama
dfens
@Jehan Tiene razón, pero si define el tipo de una matriz, no tomará tiempo, entonces mi problema está resuelto. Como, por ejemplo, let propertyType: [[[String: String]]] = [[["propertyKey": "Todos los tipos"], ["propertyKey": "House"]], [["propertyKey": "Apartamento y unidad" ], ["propertyKey": "Townhouse"]] ....... Así sucesivamente] Si no define el tipo, llevará más tiempo
Shrikant K
2
Lo mismo para mi. Esto es una falla absolutamente extraña y real por parte de Apple y Xcode
wuf810
1
¿Cómo averiguas esos lugares del código en los que se atasca el compilador?
Tomasz Nazarenko
1
@TomaszNazarenko - Vea mi respuesta a continuación. Puede obtener xcode para advertirle sobre el código que está tardando demasiado en funcionar.
greencardigan
18
  1. Cierra cualquier Xcode abierto
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. Haga clic con el botón derecho en su PROJECT_NAME.xcworkspace, elija 'mostrar contenido' y elimine la carpeta 'xcuserdata'
kjian
fuente
9

Tuve un problema similar y descubrí que accidentalmente definí una clase como su propia subclase. No recibí ninguna advertencia o error por esto, pero la compilación se atascó.

class mainClass : mainClass
{
    ...
}
Philipp Otto
fuente
De hecho, esta fue la solución para que la indexación se atascara en mi caso. ¡Gran respuesta!
rghome
¿Por qué esto causa (efectivamente) un bloqueo de un subproceso de Xcode y no produce un error como cualquier otro error de código?
Kirkland
8

Al usar Xcode 6 y dice

Esperando hacer

Puede ser que ya se esté ejecutando una instancia de make. Elimina el proceso y la indexación continúa. Tonto, pero funcionó para mí.

pez remo
fuente
Esto me lo arregló. Tenía un contenedor Docker ejecutándose con "make start" en segundo plano.
Devin Young
7

¡Otra cosa que puede probar si está tratando de resolver problemas de indexación y está tan abajo en la página!

Intente agregar esta bandera a su configuración de compilación.

-Xfrontend -warn-long-expression-type-checking=400

marca de configuración de construcción

Causará una advertencia donde el compilador tardará mucho en deducir una expresión compleja.

advertencia

Esto puede causar un error de compilación que desaparecerá después de encontrar las expresiones lentas y luego eliminar el indicador de compilación.

cardigan verde
fuente
Esta es la respuesta perfecta y exacta.
jaya raj
4

Mantenga presionada la tecla Alt> Producto> Limpiar carpeta de compilación

rogger2016
fuente
4

Es un error de Xcode (Xcode 8.2.1) y le he informado a Apple, sucederá cuando tenga un literal de diccionario grande o un literal de diccionario anidado. Debe dividir su diccionario en partes más pequeñas y agregarlas con el método de adición hasta que Apple corrija el error.

Saeed Ir
fuente
4
  • Primero, desconéctese de la red. Tanto su red cableada como su red inalámbrica deberían apagarse.
  • Segundo, mata el com.apple.dt.SourceKitServiceproceso. Entonces XCode comenzaría a indexar nuevamente en lugar de atascarse.

ingrese la descripción de la imagen aquí

ooOlly
fuente
1
Parece ser llamado com.apple.dt.SKAgenten Xcode 10.
lemonmojo
3

Para mí, cerrar completamente Xcode y luego reiniciar el proyecto funcionó.

Esta no es la solución para la pregunta original, no creo, pero es una cosa más sencilla de probar antes de eliminar archivos y carpetas, etc. crédito a esta respuesta a la idea.

Suragch
fuente
3

Esto me pasó a mí. Si está usando cocoapods, haga esto:

  1. Eliminar project.xcworkspace
  2. Reinstale pods usando 'pod install' en la terminal
  3. Creará un nuevo proyecto.xcworkspace
  4. Abra el nuevo proyecto.xcworkspace -> Limpiar -> Construir
miau2x
fuente
1
gracias. Estoy enfrentando un problema en xcode11.1 y me funciona
Rahul Parikh
1
Tuve este problema con Xcode 11.5, solucionado por esto también.
frankenapps
2

Tuve un problema similar en el que Xcode pasaba mucho tiempo indexando y con frecuencia colgaba la construcción del proyecto, momento en el que tuve que forzar el cierre y reiniciar Xcode. Fue muy molesto.

Luego noté una advertencia en el proyecto sobre la asignación incorrecta de selfun delegado. Efectivamente, faltaba un protocolo en la declaración de clase. Tenga en cuenta que hay una asignación similar en el código de muestra del OP (aunque es imposible saber a partir de la muestra si se declara el protocolo correcto):

leaderboardController.leaderboardDelegate == self;

Después de resolver esa advertencia (declarando correctamente el protocolo implementado), Xcode dejó de comportarse mal. Además, debo señalar que el proyecto se ejecutó correctamente desde que se implementaron los métodos del protocolo . Era solo que Xcode no pudo confirmar que el protocolo debería ser implementado por la clase.

Peter Gluck
fuente
2

Nada funcionó para mí, mi proyecto es demasiado grande (la fusión objetivas c, c++, swift, y javalos archivos con j2obj). He desactivado la indexación de Xcode y he trabajado sin completar el código durante meses (y es una molestia). Pero finalmente encontré una solución. La idea es mantener Xcode indexando el código, pero limitar su uso de CPU con una herramienta externa como cputhrottle.

Entonces primero necesitas instalar cputhrottle en la terminal

brew instalar cputhrottle

Luego limite el proceso de indexación de Xcode de esta manera (20 = 20%)

sudo cputhrottle $ (pgrep -f com.apple.dt.SKAgent) 20

He expuesto mi "solución" aquí con detalles del modo: Cómo evitar que Xcode use el 100% de la CPU al indexar grandes proyectos

jptsetung
fuente
Esto ayuda, aunque cputhrottle ya no está disponible en homebrew. Puede usar cpulimit en su lugar, que es pero tiene una sintaxis ligeramente diferente: "sudo cpulimit -l 20 -p $ (pgrep -f com.apple.dt.SKAgent)" - Aunque ahora puedo rastrear nuevamente (antes imposible), Preferiría averiguar qué lleva tanto tiempo indexar y omitir eso de la indexación, pero no tengo idea de qué es, cómo averiguarlo o cómo omitir algo (sospecho que algunos binarios vinculados más grandes o tal vez incluso aumentar? ? Solo compilo C ++, no uso Swift) ..
Eike
Ok, tendré que volver a remar en eso. Pareció ayudar, pero en realidad tuve un comportamiento extraño más tarde con cpulimiting skagent. Eso aborda solo el síntoma de todos modos, por lo que no se recomienda.
Eike
Todavía lo uso. La otra opción es deshabilitar totalmente la indexación de Xcode, pero eso es peor para mí. Si no hago esto, Xcode sigue indexando al 100% cada vez que modifico un archivo (por lo tanto, 24h / 24 básicamente), y cuando escribo en el editor, imprime 1 carácter cada 2 segundos, no utilizable.
jptsetung
Bueno, este es un método efectivo, aunque de fuerza bruta, para abordar el problema. Si eso funciona para usted, está bien. Tuve Xcode choques / swod después de hacerlo. Y luego probé el paso 3 en la respuesta de Kijans (es decir, no solo eliminar los datos derivados, sino eliminar .xcuserdata de .xcworkspace) y ahora todo está bien nuevamente. No sabía sobre eso ..
Eike
1

Tuve un problema similar en Xcode 6.4. La barra de progreso indicó que "Indexación" estaba "En pausa". Intenté eliminar project.xcworkspace y luego eliminar los datos derivados como se describe arriba. No pareció ayudar. Observando que las publicaciones anteriores también sugieren corregir advertencias, y dado que había heredado este enorme proyecto con 180 advertencias, me dije a mí mismo: "¿Qué diablos parece ser un buen día para corregir advertencias?". Mientras arreglaba las advertencias, media hora después, noté que la barra de progreso de "Indexación" había aumentado del 10% al 20%. Una hora más tarde, estaba al 50%, luego otra hora al 80%, y luego de otra media hora ¡estaba listo! Conclusión: agregue "tomar un almuerzo largo o una siesta" a las sugerencias anteriores.

Jerry Krinock
fuente
Creo que este es el último recurso para mí.
Rishab
1

Experimenté el mismo problema con Xcode 7.0 beta. En mi caso, los valores de "Perfil de aprovisionamiento" e "Identificador de paquete de producto" de "Configuración de compilación" diferían entre PROYECTO y OBJETIVOS. Establezco los mismos valores para ellos. Y también utilicé los mismos valores para TARGETS de "appName" y "appNameTest". Luego cerró el proyecto y lo volvió a abrir. Eso resolvió mi caso.

manispin
fuente
1

En mi caso, eliminar el directorio de datos derivados no ayudó. Aparentemente, tenía un archivo bloqueado por otro proceso, porque después de cerrar un par de ventanas de terminal y emacs, y terminar un proceso de empaquetador nativo de reacción, todo se resolvió.

chetstone
fuente
Lo mismo aquí, había interrumpido una reconstrucción de Carthage antes. Aparentemente, no todos los procesos habían dejado de ejecutarse, por lo que supongo que mantienen algunos archivos en uso. Cerrar la Terminal y cerrar-reabrir XCode hizo el truco.
CyberDude
1

Para mí, cometí un error estúpido. Escribo una clase como esta:

class A: A {
.......
}

Una clase que se hereda a sí misma y que provoca la congelación. No hay ninguna sugerencia de mensaje de Xcode.

Víctor Choy
fuente
Ésta es una causa muy probable. Eso fue todo en mi caso. Estoy bastante seguro de que me encontré con esto antes también.
Formulario
1

He experimentado este problema en algunos proyectos con Xcode 9.3.1 y en mi caso el problema se debe a algún código rápido que por alguna razón no le gusta a Xcode. Este problema es difícil de resolver porque es difícil encontrar qué archivo está causando el problema.

Cuando tengo este problema, elimino algunos archivos del proyecto Xcode (eliminando referencias) e intento probar si la indexación funciona. Mi proceso para hacerlo

  1. Eliminar algunos archivos
  2. Cerrar Xcode
  3. Abrir Xcode
  4. Si la indexación termina, intente cambiar el nombre de algún método si funciona, probablemente los archivos que ha eliminado tienen algo extraño para Xcode.

En mi caso, tenía una definición de clase con una extensión reactiva en el mismo archivo y, por alguna razón, a Xcode no le gusta, moví la extensión reactiva a otro archivo y ahora la indexación funciona bien.

El Belga
fuente
Esta es una solución realmente buena ya que permite identificar el cuello de botella incluso en un código que no ha escrito. En mi caso, era un pod / lib sin mantenimiento y me tomó días identificarlo ya que no se emitieron advertencias, incluso con los indicadores "-Xfrontend -warn-long-expression-type-check = 300".
Cédric
0

También deje de ejecutar la aplicación. Si tiene otra aplicación ejecutándose con su xcode, deténgala primero y debería continuar con la indexación.

Feroz
fuente
0

Para mí, la causa fue que abrí el mismo archivo en el Editor principal y en el Editor asistente al mismo tiempo. Una vez que cerré el Asistente de edición, se cumplió. (Xcode versión 7.2.1)

wye
fuente
0

Cierre su Xcode, cierre cualquier cliente git (árbol de origen o terminal) si está abierto y finalmente reinicie su proyecto.

Mohit Anand
fuente
0

Enfrenté esto recientemente en XCode 7.3.1, para mí, noté que el uso de RAM iba al 100% en CleanMyMac3. El problema se solucionó mágicamente después de que reinicié mi máquina. Sin embargo, para ser justos, ya había seguido adelante e intenté la respuesta aceptada, por lo que querrá hacer lo mismo antes de reiniciar por si acaso :-)

Angad
fuente
0

Arreglé esto simplemente eliminando la aplicación de mi dispositivo y reconstruyendo.

Robertsan
fuente
0

Tuve el mismo problema en swift 2.2

Tenía que ver con una función genérica función sobrecargada

func warnLog() {
    print("Warning line: \(#line) file: \(#file) ")
}

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

func warnLog<T>(input:T) -> T {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

todo lo que necesitaba hacer es eliminar una de las sobrecargas no utilizadas

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}
Chéyo
fuente
0

Mi caso: no era el archivo project.xcworkspace, no era la carpeta Derived Data.

Perdí mucho tiempo. Peor aún, no hay mensaje de error. Ninguna pista por parte de Xcode. Absolutamente perdido.

Finalmente esta función (con más de 10 parámetros) es la responsable.

func animationFrames(level: Float,
                     image: String,
                     frame0: String,
                     frame1: String,
                     frame2: String,
                     frame3: String,
                     frame4: String,
                     frame5: String,
                     frame6: String,
                     frame7: String,
                     frame8: String,
                     frame9: String,
                     frame10: String) {
}

¡Volverse loco! La verdad es que preocupa (porque no hay error de sintaxis, ni de ningún tipo)

Markus
fuente
0

Para el problema de indexación de XCode 9.3: desinstale XCode e instale nuevamente desde cero. Funciona para mi.

Máximo Lucosi
fuente
1
El tamaño de XCode no es de unos pocos KB. Son unos pocos GB.
iphondroid
0

Este problema me sucedió cuando mi máquina se quedó sin espacio de intercambio. Cerró varios programas y pestañas del navegador y la compilación tuvo éxito repentinamente después de 30 minutos de estar bloqueada en su lugar. Nada que ver con datos derivados, archivos bloqueados, etc. de mi lado.

Jacob Torres
fuente
0

Probé todas las cosas enumeradas, la indexación se sigue congelando. Esto me ayudó: si su indexación está congelada y tiene uno o más procesos rápidos consumiendo el 99% de su CPU, simplemente elimine esta (s) tarea (s) rápida (s), espere un poco y el progreso debería avanzar. Puede repetir, hasta que llega al final, en mi caso maté el proceso 7 veces, pero al final, ¡se completó la indexación!

David Kyslenko
fuente
0

Tuve este problema en un proyecto SwiftUI. Resultó que una de mis vistas de SwiftUI tenía una variable declarada incorrectamente. Yo tenía:

@EnvironmentObject var roomViewModel

donde necesitaba:

@EnvironmentObject var roomViewModel: RoomViewModel

No hubo ningún error del compilador, solo indexación sin fin. Después de que solucioné el error, el proyecto se desarrolló rápidamente.

Christopher Monsour
fuente