La compilación falla con "El comando falló con un código de salida distinto de cero"

83

Cuando intento compilar mi aplicación con Xcode, un error interrumpe el proceso de compilación:

El comando CompileStoryboardfalló con un código de salida distinto de cero

A veces, muestra este error en su lugar:

El comando CompileSwiftfalló con un código de salida distinto de cero

Tengo activado el nuevo sistema de compilación .

¿Qué puedo hacer para arreglar esto?

Tamás Sengel
fuente
En xcode 10 - stackoverflow.com/a/52722094/822420 puede ayudarlo
ram

Respuestas:

45

Cerrar Xcode para mí no tuvo ningún efecto. En cambio, limpié el proyecto usando CommandShiftK.


También encontré otra razón: tenía una referencia de guión gráfico a otro guión gráfico que había eliminado. La solución rápida fue eliminar esto.

ingrese la descripción de la imagen aquí

George_E
fuente
Bueno, cerrar tu proyecto no lo limpia, por eso no funcionó :)
Led
32

Cuando dejas de construir un proyecto cuando el compilador está en medio de algo "importante", podría aparecer este error. En ese caso, volver a construir el proyecto y dejar que termine normalmente hace que este error desaparezca.

Tamás Sengel
fuente
8
No funcionó para mí. Este error apareció cuando intento localizar el info.plistarchivo.
Ricardo Mutti
2
No funcionó conmigo también, especialmente cuando trato de integrar el marco que creé antes.
Abdulrahman Masoud
3
No funcionó. También intenté borrar la carpeta de compilación usando el comando + alt + shift + k. Sin reacción.
atereshkov
09 de enero de 2019 con Xcode 10.1 y esta definitivamente no es la respuesta correcta
NSDumb
2
Limpiar primero (CMD + SHIFT + K) y luego construir (CMD + B) funcionó para mí
Daniel Springer
28

Este es un problema conocido con Swift 4.2 y Xcode 10. Encontré un artículo aquí que lo solucionó: https://github.com/Yummypets/YPImagePicker/issues/236

En resumen, vaya a la configuración de compilación de sus proyectos, agregue una configuración definida por el usuario llamada SWIFT_ENABLE_BATCH_MODE y establezca su valor en NO.

Anteriormente, probé cada uno de los métodos sugeridos aquí (reconstruir, salir de Xcode, limpiar y reconstruir, purgar archivos de datos derivados). Ninguno de ellos funcionó.

Una vez que agregué la configuración de compilación definida por el usuario según el artículo, Swift me dijo el verdadero error. En mi caso, faltaba un}, pero podría haber varios problemas.

cdeerinck
fuente
21

También enfrenté el mismo problema en xcode 10 y probé todas las soluciones proporcionadas pero nada funcionó.

Luego borré todos los archivos y carpetas de la siguiente carpeta:

~/Library/Developer/Xcode/DerivedData

Y funcionó como un encanto.

Krishna Meena
fuente
9
Esta respuesta funcionó. Para copiar y empastar en la terminal, use esto:cd ~/Library/Developer/Xcode/DerivedData && open .
tww0003
1
gracias, he estado buscando soluciones durante horas, ¡salvaste el día!
ikel
Ni siquiera puedo encontrar este camino. Pero hizo el truco con el código @ tww0003.
Dpedrinha
@ Dpedrinha Sí, porque es de mi sistema local. He actualizado la ruta, ahora podrás encontrarla.
Krishna Meena
11

Este error me sucedió cuando olvidé cambiar las Propiedades de la entidad antes de crear la subclase NSManagedObject. Resuelto por:

  1. eliminar Entity+CoreDataClass.swifty Entity+CoreDataProperties.swift.
  2. en "clase" del inspector del modelo de entidad, cambie "módulo" Current Product Moduley "codegen" a Manual/None.
  3. recrear el NSManagedObject.

imagen

JeffreyWang23
fuente
¿Qué es CoreDataClass ?
IgorGanapolsky
9

Encontré este error cuando estaba actualizando mi proyecto de Swift 4 a 5. Primero actualicé todos mis pods a sus últimas versiones. Cuando construí, algunos pods mostraron este error.

Los siguientes pasos resolvieron este problema por mí:

  1. Se eliminaron todas las vainas de Podfile
  2. Ejecutado pod installpara eliminar todos los pods instalados
  3. Ejecutado pod deintegratepara eliminar la compatibilidad con CocoaPods
  4. Eliminado Podfile.locky .xcworkspacede mi proyecto, así que ya no hay CocoaPods
  5. Ahora mi proyecto es un proyecto puro de Xcode
  6. Abrí mi proyecto desde el .xcodeprojarchivo regular
  7. Cambié la versión Swift de mi proyecto a Swift 5
  8. Limpió el proyecto (cmd + shift + K)
  9. Xcode salido
  10. Restaurado todas las vainas a mi Podfile
  11. Ejecutado pod installpara reintegrar CocoaPods y agregar mis vainas
  12. Abrió el proyecto desde el .xcworkspacearchivo.
  13. Limpiado y reconstruido
  14. Algunos pods antiguos que todavía usaban Swift 4.0 (SlideMenuControllerSwift en mi caso) se configuraron en Swift 5.0, causaron muchos errores de compilación en su código. Lo volví a corregir a Swift 4.0 abriendo el proyecto Pods y seleccionando su objetivo.
  15. Limpiado de nuevo, reconstruido.

Ahora solo tengo errores en el código de mi propio proyecto relacionados con la diferencia en la versión Swift que hice. Mi trabajo ahora es arreglarlos.

Mostafa Al Belliehy
fuente
¿Y si usamos Carthage en lugar de Pod?
IgorGanapolsky
8

Tuve el error Command LinkStoryboards failed with a nonzero exit codey descubrí que estaba usando una referencia a un guión gráfico inexistente. Recientemente había cambiado el nombre de un archivo de guión gráfico, por lo que cambiar la referencia del nombre 'antiguo' al nombre 'nuevo' me resolvió.
Es posible que no tenga exactamente el mismo error que yo, pero una manera fácil de encontrar una explicación más detallada del error es:

  • Mostrar el navegador de problemas (mientras se muestra el error de tiempo de compilación)
  • Haga clic en el error: Haga clic en el error en el navegador de problemas.
  • Entonces, debería ver más sobre su error: Command LinkStoryboards falló con un código de salida distinto de cero


Espero que esto ayude. Por favor, soy consciente de que estoy respondiendo por experiencia de un error diferente al que se hizo esta pregunta, pero creo que este consejo debería ayudarlo a resolver problemas similares.

Benj
fuente
7

Si tiene varios objetivos, donde dos o más objetivos tienen archivos con el mismo nombre, verifique la pertenencia de esos archivos en el inspector de archivos. El error se produce cuando varias instancias del archivo con el mismo nombre han establecido la membresía de destino para el mismo destino.

Adam Bardon
fuente
6

Cambiar al sistema de compilación heredado solucionó el problema para mí

Charlton Provatas
fuente
¿Cómo podemos volver al sistema de compilación heredado en Xcode 11.3?
Jayprakash Dubey
4

Dado que este problema parece tener docenas de posibles soluciones y la causa raíz podría ser muy vaga, arrojaré mi situación al ring. La mitad de mis pods fallaban con algún tipo de CompileSwiftSourcefalla, pero solo en el archivo. Todavía pude construir para dispositivos y simuladores sin problemas. Probé muchas (si no todas) de las soluciones sugeridas aquí sin suerte. Uno de los pods tenía un error ligeramente diferente antes del CompileSwiftSourceerror, así que fui a actualizar e intentar arreglar ese único pod. Era la Cachebiblioteca para iOS que no se había actualizado en un tiempo. Hubo una bifurcación que resolvió el problema con la actualización a Xcode 10.2 que pude actualizar y, después de eso, todos los demás problemas se solucionaron solos. Así que busque un solo valor atípico en sus pods si está obteniendo un montón de errores y comience allí.

Steve E
fuente
3

En mi caso, estaba limpia la carpeta de compilación, luego reiniciaba mi mac y luego funciona.

Md. Ibrahim
fuente
3

Tenía el JSONwebtokenpod instalado y eso estaba causando problemas. Necesitaba eliminar la carpeta CommonCrypto que está en la JSONWebtokencarpeta del pod. Aquí hay un -> enlace <- que explica el problema. Esto comenzó a suceder en Xcode 10.

K-2SO
fuente
2

En mi caso, utilicé inicializaciones demasiado complicadas dentro de una extensión de clase. De repente rompió mi estructura.

class MyClass { }
extension MyClass {
static var  var1 = "", var2 = "", var3 = "", var4 = "", ...., var20 = ""
}

Resuelto:

class MyClass { }
    extension MyClass {
    static var var1 = "",
    static var var2 = "",
    static var var3 = ""
    static var var4 = "", ...., 
    static var var20 = ""
    }
Vyacheslav
fuente
2

En mi caso era un catálogo de activos vacío, cuando lo elimino todo estaba bien nuevamente.

Yaroslav Sarnitskiy
fuente
2

El comando CompileSwift falló con un código de salida distinto de cero

Este error ocurre cuando está migrando su código de Xcode 9 a Xcode 10+. Debido a que cualquier nombre de clase está en conflicto con las clases de Apple existentes. Por ejemplo: estado, evento, etc.

  1. Así que primero cambie el nombre de la clase / estructura si existe alguno en su código como "State" a "StateDetail"

  2. Si se agrega Info.plist en el destino, elimine la marca de verificación para que no copie el paquete de aplicaciones (último motivo de seguridad de Xcode10).

    • Seleccione el archivo Info.plist y desmarque debajo de "Membresía de destino" en el inspector de identidad del lado derecho

¡Y compila código de nuevo!

Sandip Patel - SM
fuente
2

En mi caso, el problema fue que asigné una clase .swift al viewController en el guión gráfico, mientras que el proyecto era Objective C.

Mahdi
fuente
2

Probé muchas de las opciones discutidas aquí.

  • Eliminar y reinstalar pods
  • Carpeta de construcción limpia
  • Eliminar datos derivados
  • Agregue SWIFT_ENABLE_BATCH_MODE y establezca su valor en NO
  • Reiniciar Xcode y recompilar
  • Reiniciar iMac y recompilar
  • establecer el modo de compilación en incremental
  • Configuración de compilación modificada: SWIFT_COMPILATION_MODE = singlefile y SWIFT_OPTIMIZATION_LEVEL = "-O"

Nada funcionó. Estoy usando Xcode versión 11.0 beta (11M336w).

Finalmente descargué una copia nueva y reemplacé la que había instalado previamente. Era la misma versión exacta. Eso hizo el truco.

GIJoeCodes
fuente
2

En mi caso se trataba de tener un archivo llamado Location. después de investigar un poco, descubrí que se trataba de tener dos archivos con el mismo nombre (raro). Sin embargo, porque no lo tengo, se ha resuelto eliminando el archivo y agregando otro archivo con un nombre diferente.

filenames are used to distinguish private declarations with the same name
SinaMN75
fuente
2

Recibí este error al intentar ejecutar mis pruebas unitarias en un submódulo. Lo que he hecho es:

Cambiar el simulador => Limpiar el proyecto => Construir el proyecto => Ejecutar pruebas unitarias .

Después de esto, mis pruebas unitarias se ejecutaron sin ningún problema.

Udaya Sri
fuente
2

Para mí, limpiar el proyecto ( Command+ Shift+ K) y reiniciar xCode funcionó para mí

Moamen Mostafa
fuente
1

Tengo el problema así y mi solución es cambiar una pequeña cosa en Build Settings:

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

a mi me funciona

Daniel Le
fuente
1

Muy bien, estaba teniendo el mismo problema con Xcode 10. Normalmente uso un guión gráfico para cada vista, de esa manera, si alguien está ayudando, es más fácil plegar el código. Necesitaba hacer que una de las vistas en un guión gráfico fuera el controlador de vista inicial.

Jimistephen
fuente
Por favor, explique esto más a fondo, no entiendo esta respuesta por completo
Mohsin Khubaib Ahmed
Por lo tanto, puede tener más de un guión gráfico, y en una aplicación de vistas múltiples, uso un guión gráfico en cada vista, por modularidad y de esa manera, si alguien está trabajando en otra parte de la aplicación, es mucho más fácil introducir esos cambios. En ViewControllers hay una opción para convertirlo en el controlador de vista inicial para ese guión gráfico que se carga cuando llamas storyboard.loadInitialView() y en un guión gráfico no se hizo clic en esa opción y cuando hice clic en ella desapareció.
jimistephen
1

En mi caso, estaba cambiando el nombre de un archivo a un archivo existente en otra carpeta (Grupo) por error, simplemente cámbiele el nombre a lo que era y luego el error desapareció

Seyyed Muhammad Amir Mehrnam
fuente
1

Los objetivos deben especificarse con datos relacionados como appicon

usuario10375102
fuente
1

Para mí, el problema fue que en mi Podfile no puse use_frameworks!. Solo descomento esa línea, correpod install en la terminal nuevamente. Y se arregló.

Se comentó ya que la aplicación se hizo completamente en Objective-C. Dado que la aplicación ahora usa Swift, tuve que hacer ese cambio en el Podfile

Luis Felipe
fuente
1

Tuve el mismo error al reiniciar Xcode y recompilar Se solucionó el problema para mí.

Título Newt
fuente
1

Recibí el mismo error al vincular guiones gráficos separados. El error, "Command CompileSwiftSources falló con un código de salida distinto de cero". se muestra porque simplemente olvidé configurar el controlador de vista dentro del segundo guión gráfico que estoy vinculando como 'un controlador de vista inicial'.


fuente
0

Lo que ayudó a mí es fijar Compilation Modea Incrementalpara todas las configuraciones en Target's Build Settings. Con el Whole modulemodo de compilación tengo errores. Pero esta configuración hizo que la construcción del proyecto fuera más lenta.

Denis Kutlubaev
fuente
0

Si se enfrenta a un error como ese en la nueva versión de MacOS.

xcrun: error: ruta de desarrollador activa no válida (/ Library / Developer / CommandLineTools), falta xcrun en: / Library / Developer / CommandLineTools / usr / bin / xcrun

Significa que necesita instalar la línea de comando XCode, abrir una Terminal y ejecutar este comando:

$ xcode-select --install

Asif vora
fuente
0

Lo que me estaba causando estos errores (obtenía 8+ para algunos de mis cocoapods) era solucionar cualquier problema de compilación en tiempo de ejecución en todos los pods.

Kevin R.
fuente