ios - El comando CompileSwift falló con un código de salida distinto de cero en Xcode 10
swift4 xcode10 (24)
Esta pregunta ya tiene una respuesta aquí:
Buenas tardes,
Después de actualizar a la última versión de Xcode en el momento (versión 10.0), el proyecto no puede compilarse porque encontró algunos errores con respecto a algunos errores "El comando CompileSwift falló con un código de salida distinto de cero".
¿Cómo resuelvo estos errores? Aparecen en la mayoría de los Pods (yo uso CocoaPods) que uso dentro de mi proyecto.
He intentado actualizar la versión del pod y los pods a la última versión disponible, pero el problema sigue ahí.
He buscado mucho en la web y hay muy poca información sobre este tema.
Saludos.
Actualmente mi compilación está funcionando. Aquí están los pasos que intenté hasta que finalmente funcionó:
- Busca en todo el proyecto la palabra CommonCrypto.
- Si tiene un Pod que contiene esa importación de encabezado, elimine este Pod del archivo Pod y realice una instalación del pod.
- Limpia y construye el proyecto.
- Vuelva a agregar el Pod al archivo Pod y realice una instalación del pod.
- Limpie y vuelva a construir el proyecto usando un dispositivo real si es posible.
Y si no tiene ese Pod, tal vez pueda intentarlo siguiendo los mismos pasos con un Pod viejo que pueda encontrar en su proyecto.
Información adicional: también si tiene algún error de código dentro de un Pod, primero debe resolver ese problema de código y luego intentar compilar nuevamente el proyecto.
Voy a copiar los cambios realizados en mi proyecto.pbxproj. Sé que no es muy útil, pero es lo único que ha cambiado en la confirmación de la diferencia de git:
Removed: BDC9821B1E9BD1B600ADE0EF /* (null) in Sources */ = {isa = PBXBuildFile; };
Added: BDC9821B1E9BD1B600ADE0EF /* BuildFile in Sources */ = {isa = PBXBuildFile; };
Espero que esto pueda ayudar,
Saludos.
Aquí está la solución: - Ir a la configuración de compilación - Buscar SWIFT_COMPILATION_MODE - Si este es "Módulo completo" para la configuración de la versión, cámbielo a "Incremental". - Archivar ahora.
Cuando cambia la configuración a "Incremental", el proceso se realiza correctamente.
Busqué en toda la web, pero no pude encontrar ninguna solución para este problema. Logré QUITAR la ruta "Common Crypto" en la sección: IMPORTAR rutas en la configuración de compilación. El problema parece ser que el "cripto común" ahora existe en la fundación en ios 12 sdk.
Asi que":
¡Simplemente elimine la ruta del archivo "criptografía común" en la configuración de compilación y el proyecto se construirá como un encanto! :)
Conseguí esto al azar desde Xcode 10 . Creo que ocurre cuando cambio algo en el código mientras se inicia la construcción. La siguiente compilación funciona cada vez.
ERROR = El comando CompileSwiftSources falló con un código de salida distinto de cero
En mi caso, cuando encontré este error, me quedé atiborrado de compilación. Pero cuando veo algunas respuestas de problemas relacionados. Encontré un archivo de duplicación en mi proyecto. Donde estaba el mismo viewController como archivo de clase. Así que sí, cuando me di cuenta, cambié su nombre por uno nuevo. Y sí, las cosas cambiaron!
Ejecutar la
pod install --repo-update
y cerrar y volver a abrir x-code solucionó este problema en todos mis pods que tenían este error.
El mío era un problema de espaciado de nombres. Tenía dos archivos con el mismo nombre. Solo renombrélas y se resolvió.
Siempre hay que marcar primero la casilla "Estúpido" antes de buscar en otra parte. :)
El problema que tuve fue que debido a que no existía un Switf CommonCrypto nativo, usé un encabezado puente y un objetivo que con algo de magia lo incluía en la compilación. Como CommonCrypto ahora es nativo, resolví el problema eliminando el destino y el #import y en su lugar agregé un CommonCrypto de importación donde lo usé.
En mi caso, había una entrada duplicada para un marco en la sección del marco de Archivos de entrada de Cartago en Fases de compilación
Este es un problema conocido con Swift 4.2 y Xcode 10. Encontré un artículo aquí que lo solucionó para mí: https://github.com/Yummypets/YPImagePicker/issues/236
En resumen, vaya a la configuración de compilación de sus proyectos y 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 siguientes métodos sugeridos en otro lugar (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}, pero podría haber muchos problemas.
Hice lo siguiente y funciona a la perfección:
- Abrir Preferencias de Xcode ( Comando , )
-
Ir a la pestaña
Locations
-
Haga clic en la pequeña flecha gris que muestra la ruta URL para los
Derived Data
-
La ventana del buscador se abrirá y mostrará las siguientes carpetas:
-
DerivedData
-
Archives
-
iOS DeviceSupport
-
UserData
-
DocumentationCache
-
iOS Device Logs
-
-
Salir de Xcode
-
Elimine la carpeta
DerivedData
(solo contiene un caché de versiones anteriores) - Reiniciar Xcode
La nueva declaración de la clase será el problema. Verifique la clase duplicada y construya.
Limpie la aplicación e intente compilarla de nuevo, usando Shift Option Command K y luego Command B.
Lo intenté
- Cierre y reapertura de Xcode
- Carpeta de construcción de limpieza
-
Ejecutando
pod install --repo-update
y todos estos todavía no solucionaron el problema.
¡Reiniciar el Mac hizo el truco !
Para mí, el mensaje de error decía que tenía demasiados archivos de simulador abiertos para construir Swift. Cuando salí del simulador y lo construí de nuevo, todo funcionó.
Para mí, solo estoy limpiando proyectos usando Shift Command K y Opción Shift Command K.
Parece que este es un error bastante vago, así que compartiré lo que hice para solucionarlo cuando me encontré con esto:
Usando Xcode 10.1 y Swift 4.2 Intenté prácticamente todas las sugerencias aquí, pero ninguna me funcionó, luego me di cuenta de que la dependencia que estaba usando no era compatible con Swift 4.2 y eso me estaba ocasionando este error en otras cápsulas.
Así que para solucionarlo, solo tuve que forzar a ese pod para usar Swift 4.0 colocando esto al final de mi
Podfile
:
post_install do |installer|
installer.pods_project.targets.each do |target|
if [''TKRadarChart''].include? target.name
target.build_configurations.each do |config|
config.build_settings[''SWIFT_VERSION''] = ''4.0''
end
end
end
end
Permítanme compartir mi experiencia para solucionar este problema.
Abrir destino -> Fases de compilación -> Copiar recursos de paquete y eliminar info.plist.
Nota: si está utilizando alguna extensión, elimine la lista de información de esa extensión de los Objetivos.
Espero eso ayude.
Probablemente no estés leyendo el mensaje de error completo. Si observa el mensaje "El comando CompileSwift falló con un código de salida distinto de cero" debería encontrar una especificación como esta:
En este ejemplo tenía dos archivos con el mismo nombre. Una vez lo arreglé todo funcionó como debía.
Solo añadiendo a esta pregunta. Mi problema no tenía nada que ver con CommonCrypto. Creó una nueva aplicación de aplicación única y se probó para ejecutarse. El compilador se quejaba de usar Swift 4.2
Cambiar el idioma de Swift a la versión 4.0 en la configuración de Build solucionó el problema. No estoy seguro si esto es un error.
También encontré el mismo problema e hice lo que @cdeerinck sugirió y llegué al siguiente https://github.com/Yummypets/YPImagePicker/issues/236 que sugirió agregar una variable definida por el usuario a la configuración de compilación para deshabilitar el modo por lotes, es decir, agregar una nueva variable definida por el usuario llamada SWIFT_ENABLE_BATCH_MODE y establecerla en NO , Pude obtener más información sobre el problema y pude saber que el error se produjo en un marco que usa CommonCrypto, que le fue agregado (por mí), pero desde Xcode 10 se expone de forma nativa como parte de Swift (solo para plataformas Apple ), y agregarlo (o su existencia a partir de la versión anterior) estaba causando una colisión de nombre y por lo tanto estaba generando el error. Para saber más, consulte este enlace que explica el problema con más detalle.
Tengo el mismo problema y mi solución es cambiar un poco en la configuración de compilación
SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";
en mi caso, el problema se debió a que la extensión de watchkit se estableció en swift 3, mientras que el objetivo del proyecto principal se estableció en swift 4.2