swift - framework - Xcode 8 hace una reconstrucción completa del proyecto
ios app development (4)
Al haber actualizado el proyecto Swift + ObjC a Xcode 8 (Swift 2.3) encontré el 50% o más del tiempo que Xcode realiza una reconstrucción completa del proyecto en lugar de una construcción incremental.
Los cambios realizados son la adición de declaraciones de impresión simples. Parece que no hay lógica sobre cuándo realiza una reconstrucción completa.
Aparece en la fase "Comprobar dependencias", decide esto. En Xcode 7 esto no parecía ser un problema.
¿Alguien más ha encontrado esto?
Ok, aquí hay una respuesta de por qué está sucediendo, pero no sé la solución. Si usas el "Otro Swift Flag", el Xcode de XDD mostrará lo que decida que necesita compilar en función de sus dependencias. Verás cosas como:
Queuing EditProfileViewController.swift because of dependencies discovered later
Queuing ChangePasswordViewController.swift because of dependencies discovered later
Queuing JoinViewController.swift because of dependencies discovered later
Queuing JoinProfileViewController.swift because of dependencies discovered later
Queuing FormViewBuildable.swift because of dependencies discovered later
Queuing RadioTextFormView.swift because of dependencies discovered later
Queuing TextFieldFormView.swift because of dependencies discovered later
Queuing AccountProfileViewController.swift because of dependencies discovered later
Me pregunto si este es un problema rápido 3, porque no estaba teniendo este problema antes de convertir. Hice un pequeño proyecto de ejemplo donde
FileA incluye algo de FileB incluye algo de FileC
e incluso agregar un archivo de cambio privado a FileC que no se usa en ninguna parte hace que FileA, FileB y FileC se pongan en cola para la compilación debido a las dependencias. Voy a probar este ejemplo en Xcode 7 más tarde para ver qué sucede.
Entonces, parece que la resolución de dependencia de swift 3 no está funcionando muy bien. He probado esto en otros 2 proyectos veloces 3 en el trabajo, y lo mismo es cierto. Haga cualquier cambio en cualquier archivo, y cada archivo se compila. No se siente lento hasta que empiece a llegar a proyectos con aproximadamente 15,000 líneas de código más o menos, lo que puede ser el motivo por el cual nadie está hablando mucho sobre esto. A menos que tenga una aplicación veloz 3 de tamaño mediano, probablemente ni siquiera notará que la complicación incremental no está funcionando del todo bien. Actualizaré si aprendo algo más.
Al desmarcar "Buscar dependencias implícitas" en la pestaña Editar esquema> "Esquema"> Crear, se corrigió para mí los archivos del proyecto. "Copiar bibliotecas estándar rápidas" aún demora para siempre ...
He encontrado que esto funciona de manera consistente, sin embargo compilará archivos rápidos si modifica un encabezado incluido en el encabezado de puente. También hará una compilación completa si cambias las ramas de git hacia adelante y hacia atrás.
En primer lugar, asegúrese de que el nivel de optimización para la depuración esté configurado en Ninguno (No optimización del módulo completo)
Luego, de acuerdo con https://forums.developer.apple.com/thread/62737 Apple Staff (ddunbar):
Creemos que ese escenario:
HEADERMAP_USES_VFS = YES
Verdadero en su proyecto (o para todos sus objetivos) puede ser una solución efectiva para muchas personas. Esto no está garantizado para funcionar (que es la razón por la que ya no está activado por defecto), pero debería funcionar para la mayoría de los proyectos.
Esto se debe agregar a través de "Agregar configuración definida por el usuario" en su configuración de compilación de destino.
.
Apple lanzó una nueva versión beta de Xcode ayer (14 de noviembre)
Xcode 8.2 beta 2
Y este problema se ha marcado como resuelto en la nota de lanzamiento.
Sistema de compilación
• Xcode no reconstruirá un objetivo completo cuando solo se hayan producido pequeños cambios. (28892475)
Está funcionando para mí. La velocidad de compilación volvió como de costumbre. ¡Todos los que se enfrentan a este problema deberían intentarlo!