color bar ios xcode

ios - bar - Xcode 8 recompilando el código completo cada vez



uinavigationitem title color (15)

Con cualquier cambio en el código (aunque el archivo no está en .pch), el proyecto completo se recompila cada vez.


Apple lanzó ayer una nueva versión beta de Xcode (14 de noviembre)

Xcode 8.2 beta 2

Y este problema se ha marcado como resuelto en la nota de lanzamiento.

Sistema de construcción

• Xcode no reconstruirá un objetivo completo cuando solo se hayan producido pequeños cambios. (28892475)

Me esta funcionando. La velocidad de construcción volvió como siempre. ¡Todos los que se enfrentan a este problema deberían intentarlo!

here


Cambié algunas cosas con mi código con respecto al encabezado del prefijo que parece haber solucionado este problema. No sé cuál realmente hizo el truco, pero los compartiré con la esperanza de que ayude a alguien más. Si no tiene un encabezado de prefijo establecido, entonces supongo que este no es el problema (o el problema es multifacético).

  1. Elimine las importaciones del encabezado de prefijo que son archivos del directorio de productos compilados para que pueda cambiar la configuración de compilación para esto ("El encabezado precompilado usa archivos del directorio de compilación") a "No". Asegúrese de que no se importe indirectamente a través de otras importaciones también.
  2. Elimine cualquier importación del encabezado de prefijo que use módulos Clang (bibliotecas o marcos que tienen un archivo module.modulemap en su directorio Headers, para que pueda escribir código como @import MyModule ). (Para mí, esto y el paso 1 eran lo mismo).
  3. Establezca la configuración de compilación para compartir encabezado de prefijo en "Sí". (No creo que esto sea necesario, y no debería tener ningún efecto en mi propio proyecto. Solo digo esto porque lo cambié porque estaba dispuesto a intentar cualquier cosa. :))
  4. Salga de Xcode y elimine su directorio DerivedData / ModuleCache (configurado para estar en ~ / Library / Developer si no recuerdo mal).

Si eso todavía no funciona, puede intentar eliminar algunas importaciones más de su encabezado de prefijo. Puede haber algo tropezando ...


Intente: 1. Navegar al Proyecto 2. Haga clic en Configuración de compilación 3. Verifique que OptimizationLevel esté configurado en Ninguno para la depuración. 4. Haga clic en Agregar configuración definida por el usuario 5. Establezca SWIFT_WHOLE_MODULE_OPTIMIZATION en YES.


La solución para mí fue simplemente cerrar el guión gráfico, abrí el archivo fuente con el editor asistido y también abrí el archivo del guión gráfico (cerrando el guión gráfico, ya que no estaba haciendo ningún cambio) eliminé toda la compilación innecesaria


Madhuri Mane tiene toda la razón con respecto a esto. Para agregar un poco más de claridad, algunos puntos importantes a tener en cuenta:

Esto SÓLO es aplicable si tiene dependencias implícitas en bibliotecas / marcos en los que se basa su objetivo.

Si "Buscar dependencias implícitas" está deshabilitado:

Resultado: la biblioteca no se creará antes de crear el destino de la aplicación. El objetivo de la aplicación no se puede generar.

Solución: para asegurarse de que no ocurra el segundo escenario, debe agregar los objetivos necesarios en la lista de objetivos y ordenarlos correctamente.

Fuente y lecturas adicionales sobre el tema: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action

Ahora, si todo su proyecto está alojado dentro de un objetivo y eso toma 4 minutos para compilar, no hay mucho que pueda hacer al respecto, excepto dividirlo en marcos para aprovechar lo anterior o averiguar dónde queda la compilación. Si está utilizando algo como PaintCode o tiene grandes porciones de código UIKit en un cambio rápido, cámbielo a Objective-c, se compila mucho más rápido


Parece que están trabajando activamente en ello de acuerdo con forums.developer.apple.com/thread/62737 pero una solución es agregar

HEADERMAP_USES_VFS = YES

en la configuración de compilación de su objetivo (Proyecto -> Destino -> Configuración de compilación -> Definido por el usuario).

Esta solución funcionó siempre para mí hoy, después de que ninguna otra solución haya funcionado de manera constante durante el último mes.

EDITAR: todavía a veces recompila todo, aunque parece hacerlo con mucha menos frecuencia con esta configuración definida.


Problema de mi lado solucionado aplicando la desmarcación a la solución "Buscar dependencias implícitas".

PERO recuerde si está usando cocoapods, para aplicar esta configuración también a su proyecto de pod seleccionándolo desde

Producto -> Esquema -> Pods- "yourProjectName"

también se aplica en:

Producto -> Esquema -> "yourProjectName"

Me ayudó, así que espero que esta pista ayude a alguien más.

Gracias


Revise todo su código en @IBDesignable directivas @IBDesignable en mi caso particular Proyecto de compilación de Xcode todo el tiempo porque tenía algunas vistas en mi guión gráfico que contenía estos atributos @IBDesignable en él. Lo segundo es que también tengo mi storyboard abierto en una ventana separada (no en una pestaña) que es empujar mi Xcode para crear compilaciones para todos los simuladores para siempre.


Si ha realizado cambios en el archivo Swift, comience a compilar la aplicación, vaya a la última pestaña y haga clic en el registro de compilación, durante la etapa "Comprobar dependencias", detenga la compilación y ejecútela de nuevo. En la segunda ejecución, solo debe compilar los archivos que modificó. Si se hace correctamente, he encontrado que funciona cada vez. No es necesario realizar ningún cambio en la configuración del proyecto.

Esto parece ser un error en Xcode.

Si ve que la aplicación está haciendo una compilación completa, deténgala e intente este truco nuevamente.

Si no ha realizado ningún cambio en el código, utilice CMD + CTRL + R para ejecutar sin compilar la aplicación que adjunta el depurador. No creará una aplicación, pero puede ayudar a ahorrar tiempo innecesario.


Vaya a Producto -> Esquema -> Editar esquema. Seleccione Compilar en la columna del lado izquierdo y desmarque " Buscar dependencias implícitas "

Pero esta bandera debe permanecer marcada cuando esté creando el proyecto por primera vez.


Vaya a la configuración de compilación de su objetivo y establezca Defines Module en Yes .

Trabajó para mí para un par de compilaciones, demasiado pronto para afirmar que esta es una solución definitiva, pero al menos lo estamos intentando.


Vaya a la configuración de compilación del proyecto y cambie el "Dialecto del lenguaje C".

El "Dialecto del lenguaje C" se establece en "GNU99" en lugar de "Compilador predeterminado" cuando actualiza la versión de xcode. En algún momento, Xcode no migró la configuración del proyecto de la biblioteca correctamente, por lo que se configuró en GNU99. Esto solucionará el problema


para facilitar el tiempo de compilación de xcode, puede hacer uso de IRAMDISK (disco de memoria virtual). Medios muy útiles y efectivos para reducir el tiempo de compilación.

También se puede usar para acelerar la aplicación de uso frecuente.

consulte el siguiente enlace para descargar y usar: http://iramdisk.findmysoft.com/mac/


ACTUALIZADO

La mejor mejora que pude hacer fue modularizar mi proyecto. Modularizando específicamente la capa ORM que se utiliza en casi todas las demás clases. Al mover ese código a un destino separado dentro de mi proyecto e importarlo como un módulo, pude mejorar enormemente los tiempos de compilación. Xcode ya no decide recompilar archivos innecesarios cuando hago una compilación.

Ahora uso el método de compilación de archivo único para compilaciones de depuración incrementales rápidas.

Hay algunas otras buenas sugerencias en este enlace, incluida la refactorización de código, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5

ANTIGUO

Todavía ha sido un problema constante para mí con Xcode 9. Al igual que muchos de ustedes, estoy trabajando en un gran proyecto veloz de 4 / cocoapods con muchos archivos fuente y volver a compilar cada archivo cada vez es irritante.

Hasta ahora obtengo los mejores resultados con la siguiente configuración. Le sugiero que lo pruebe y vea cómo funciona para usted.

  • Esquema -> Compilación -> "Buscar dependencias implícitas" = VERDADERO
  • Configuración de compilación -> Optimización de tiempo de enlace = Incremental
  • Configuración de compilación -> Nivel de optimización (depuración) = Ninguno [-OO]
  • Configuración de compilación -> Nivel de optimización (versión) = más rápido, más pequeño [-Os]
  • Configuración de compilación -> Aumentar el uso compartido de encabezados precompilados = SÍ
  • Configuración de compilación -> Habilitar destilación incremental = SÍ

Se agregaron configuraciones de compilación personalizadas definidas por el usuario,

  • Configuración de compilación -> HEADERMAP_USERS_VFS = YES

Nota: No tengo la configuración personalizada definida por el usuario para la optimización de todo el módulo.


Actualización 2017/1/2

Este problema no se ha resuelto en Xcode 8.2.1 (para mi proyecto)

¿Como sobrevivir?

Code IDE: Xcode/Atom Build: xcrun Debug: Xcode (Control + Command + R)

Actualizar 2016/12/17

Este problema no se ha resuelto en Xcode 8.2.

Actualizar 12/12/2016

El átomo para codificar y la línea de comando para construir y depurar es mi elección ahora. Espero que Apple arregle este error legítimo pronto.

Actualización 2016/12/04

Este problema parece resuelto con Xcode 8.2 (beta 2) .

Pero para mí no está resuelto, me enfrento a este problema incluso cuando uso Xcode 8.2. Puedes probarlo (descarga Xcode8.2 beta2 here )

Sistema de construcción • Xcode no reconstruirá un objetivo completo cuando solo se hayan producido pequeños cambios. (28892475)

Antigua respuesta: esta es una solución:

Pestaña "Configuración de compilación" -> "Dialecto del lenguaje C" -> Cámbielo a "Valor predeterminado del compilador".

Para referencia :

El "Dialecto del lenguaje C" se configuró en "GNU99" en lugar de "Compilador predeterminado". Anteriormente, el estándar era GNU99 pero ahora no lo es. En algún momento, Xcode no migró la configuración del proyecto de la biblioteca correctamente, por lo que se configuró en GNU99. Una vez que lo cambié a GNU99, ¡dejó de recompilar todo mi código cada vez!