Estoy intentando pasar al nuevo sistema de compilación al compilar con Xcode 10. Sin embargo, aparece el siguiente error:
Cycle details:
→ Target 'project' : LinkStoryboards
Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard'
Target 'project' : ValidateEmbeddedBinary /Users/project/Xcode/DerivedData/project-hgqvaddkhmzxfkaycbicisabeakv/Build/Products/Debug-iphoneos/project.app/PlugIns/stickers.appex
Target 'project' has process command with input '/Users/project/Resources/Info.plist'
Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard'
Incluso después de eliminar el archivo problemático, obtengo lo mismo para otro xib / storyboard. ¿Cómo puedo solucionar este error sin volver al sistema de compilación heredado?
xcode10
compile-time
build-system
Sahil Kapoor
fuente
fuente
Respuestas:
Para cualquiera que tenga un problema con el sistema de compilación Xcode 10, siga los siguientes pasos para solucionarlo:
Resolverá el problema de compilación con el nuevo Xcode.
Si desea trabajar con el nuevo sistema de compilación, puede encontrar la ayuda para la resolución de problemas en esta página de ayuda de Apple Xcode .
fuente
Estaba teniendo este problema con Cocoapods. La solución fue limpiar la carpeta de compilación, volver a instalar todos los pods y luego reconstruir la aplicación. El problema se resolvió de esa manera.
fuente
Solucioné mi problema moviendo la fase de compilación de 'Copiar recursos de paquete' antes de todas mis fases de compilación de 'Copiar archivos' y 'Vincular binarios con bibliotecas'
fuente
El nuevo sistema de compilación de Xcode 10 detecta los ciclos de dependencia en su compilación y proporciona diagnósticos para ayudarlo a resolverlos. La reparación de estos ciclos de dependencia mejora la confiabilidad de su compilación, de modo que los productos correctos se produzcan de manera consistente (los ciclos son una posible causa de la necesidad de eliminar sus datos derivados). También mejora sus tiempos de compilación incrementales, ya que los ciclos en la compilación hacen que algo en su gráfico de compilación esté siempre desactualizado en cada compilación, lo que hace que la repetición de compilación funcione innecesariamente cada vez que compila.
Hay documentación sobre cómo resolver algunos tipos comunes de ciclos de dependencia en la Ayuda de Xcode: https://help.apple.com/xcode/mac/current/#/dev621201fb0
Dicho esto, este diagnóstico de ciclo parece un poco extraño. Parece que pudiste resolverlo reorganizando tus fases de compilación, pero no creo que el diagnóstico realmente explicara el problema. Si no le importa, un informe de error sobre cómo mejorar este diagnóstico para este caso particular sería muy apreciado. Puede presentar uno en https://bugreport.apple.com . Incluya todos los detalles sobre su proyecto que crea que pueden ser relevantes; un proyecto de muestra que reproduzca el problema es ideal, pero si no puede adjuntarlo, el diagnóstico y alguna idea de la estructura del proyecto siguen siendo útiles.
fuente
Tenía este problema con Cocoapods y encontré una solución temporal:
sudo gem update cocoapods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod install
Fuente aquí y estoy en Xcode 10 beta 4.
EDITAR : ahora en Xcode 10.0 y sigue siendo relevante.
fuente
Clean Build Folder
(y salir de Xcode también podría ayudar) antes de seguir los pasos2.
y3.
.Tuve un problema similar con una interacción mixta entre Swift, Objective-C y CoreData : en mi proyecto (escrito en Swift) también hice uso de las clases Swift autogeneradas de Core Data.
Pero en un momento necesité una clase Objective C con propiedades públicas (definidas en su contraparte del encabezado) que refirieran las entidades de datos centrales.
Tan pronto como cambié el modelo de CoreData, XCode intentó reconstruir las clases y me colgué con el error de compilación del ciclo indicado.
Después de un momento inicial de desesperación, como no tenía ninguna fase de encabezado de compilación en mi proyecto para cambiar el orden, descubrí que la solución era bastante simple:
En el
myObjCClass.h
, eliminé la declaración de importación del encabezado Swift compartido y la cambié con una@class
directiva:y moví la
#import "ProjectName-Swift.h"
declaración almyObjCClass.m
archivo de definición de clase.Y no generó preocupaciones.
fuente
Finalmente pude resolver esto moviendo el
Embed App Extensions
scriptBuild Phases
del Target principal a la última posición.fuente
De hecho, solo debe prestar atención al indicador de Xcode
This usually can be resolved by moving the target's Headers build phase before Compile Sources
y luego puede hacerlo.Cuando encontré este problema, Xcode me pregunta:
:-1: Cycle inside XXXX; building could produce unreliable results. This usually can be resolved by moving the target's Headers build phase before Compile Sources. Cycle details: → Target 'XXXX': LinkStoryboards ○ Target 'XXXX: Ditto Path/XXXX-Swift.h /Path/XXXX-Swift.h ○ Target 'XXXX has compile command for Swift source files ○ That command depends on command in Target 'XXXX: script phase “Run Script”
Solo hice una cosa y resolví el problema perfectamente:
Seleccione
Target
y luego seleccioneBuild Phase
para mover elRun Script
al frente deCompile Sources
.Ejecutar, compilado con éxito.
El principio es simple, simplemente cambie el orden de compilación.
Xcode 10.2 y Swift 5
fuente
Estaba enfrentando el mismo problema: a continuación estaba el error
Lo resolví usando los siguientes pasos:
1). Ir al objetivo RxCocoa en el proyecto Pods-MyAppName
2) Ir a las fases de construcción
3) Arrastre la fase de encabezados y muévala por encima de la fase de creación de fuentes compiladas.
Esto solucionó mi problema. ¡Espero eso ayude!
fuente
En el objetivo
Scheme
, busque la etiquetaBuild
y asegúrese de queFind Implicit Dependencies
no esté marcada. Estos pasos pueden funcionar.fuente
Mi solución fue simplemente limpiar la carpeta de compilación y luego volver a compilar.
fuente
Mi problema tenía que ver con una dependencia cíclica entre mi encabezado de puente rápido y mis archivos objetivos c.
En mis archivos de encabezado objetivo c tenía un
#import "...-swift.h"
archivo y luego en un par de mis archivos rápidos estaba incluyendo esos archivos con dicha importación y, por lo tanto, causando una dependencia cíclica.Este es el StackOverflow que me llevó a encontrar la solución:
Objetivo C, problema de interoperabilidad rápida debido a la dependencia circular
Cómo evitar la referencia circular cuando el encabezado de puente Swift importa un archivo que importa Hopscotch-Swift.h en sí
EDITAR:
Terminé convirtiendo los archivos anteriores a rápido y esto resolvió mi problema.
fuente
Parece que necesita cambiar el orden de las fases de compilación dentro de los objetivos de sus Pods. Para mí, mover los encabezados por encima del resto funcionó. Puede automatizar esto en su Podfile:
fuente
El mismo problema
Version 10.0 beta 3 (10L201y)
y quería tener el nuevo sistema de compilación .El problema se ha desactivado
Enable Modules (C and Objective-C)
en
Build Settings -> Apple Clang - Language - Modules
Después de habilitarlo (establecido en SÍ) eliminó el error.
fuente
Me encontré con un problema similar cuando intenté archivar mi proyecto en Xcode 10. Aquí está el texto detallado:
Se solucionó estableciendo
$(USER)
enmytarget -> Build Settings -> Deployment -> Install Owner
fuente
Core_Data
Tuve el mismo problema y error, pero el mío ocurrió cuando "Creé NSManagedObject Subclass" para mi entidad y me enfrenté a este error. Entonces, si cree que su error es el mismo que el mío sobre Core Data, lo que probablemente pueda ayudarlo (y me ayudó a mí) es:
Creo que porque en otros escenarios Xcode crea un archivo automáticamente y cuando creamos otro causa un conflicto.
fuente
Xcode 10.2.1 / Objetivo de prueba unitario. Mi objetivo de prueba unitaria es independiente del objetivo del host para mejorar el tiempo de construcción. Resolverlo por desmarques
Find Implicit Dependencies
enScheme
-Build
opciones, pues especifico en todas las dependenciasBuild Settings
-Compile Sources
.fuente
Es posible que pueda solucionar esto aquí:
Archivo -> Configuración del espacio de trabajo -> Sistema de compilación: Nuevo sistema de compilación
fuente
Probé cosas de esta página, pero lo único que me ayudó fue que hice una copia del objetivo y actualicé el nombre de la copia (eliminé el sufijo de copia), eliminé el anterior y luego instalé el pod.
fuente
Me enfrenté a este problema después de actualizar Xcode a la versión 11.4. La degradación a 11.2.1 lo solucionó.
fuente
Xcode: 11.3.1 Destino: XCUITest target
Ejecute el comando para limpiar la carpeta de compilación: rm -rf ~ / Library / Developer / Xcode / DerivedData / *
Cambiar la configuración del espacio de trabajo: seleccione Sistema de compilación heredado
fuente
Las siguientes dos opciones funcionaron para mí: Archivo-> Configuración del proyecto / área de trabajo.
1, cambie el sistema de compilación a "Sistema de compilación heredado" en Archivo-> Configuración del proyecto
2, Edite el esquema y seleccione la opción "Construir en paralelo" en la sección Generar.
fuente
En el panel del proyecto en el LHS, para sus productos de compilación, no los seleccione en la lista de miembros de Target en el panel RHS.
fuente