Sin embargo, he recompilado el marco usando el mismo Xcode y todavía me da este error.
- Base SDK iOS 11.1 para ambos
- Swift Language Version Swift 4.0 para ambos
- No usar Pods / Carthage
Espero que alguien sepa
Sin embargo, he recompilado el marco usando el mismo Xcode y todavía me da este error.
Espero que alguien sepa
Respuestas:
Actualizar:
Para versiones de lanzamiento de Xcode:
Este error (y errores similares relacionados con Swift 4.1, 4.2, etc.) se producirán al abrir un proyecto con Xcode 9.1, 9.2, 9.3, 9.4, 10, etc. que utiliza marcos que se crearon con herramientas de Xcode anteriores.
Para solucionar el problema, actualice y reconstruya sus marcos usando Carthage ( carthage update --platform iOS
), Cocoapods ( pod update
o pod install
), o manualmente, con las nuevas herramientas Xcode actualizadas. Las herramientas deben actualizarse automáticamente cuando actualice Xcode, pero si no, puede seguir los pasos que se describen a continuación en la respuesta original.
También es posible que deba limpiar su proyecto cmd + shift + k
y posiblemente su carpeta de compilación cmd + option + shift + k
para que Xcode no use compilaciones de marco en caché.
En algunos casos, es posible que también deba eliminar su carpeta de datos derivados (se encuentra fácilmente yendo a Preferencias de Xcode -> Ubicaciones -> Carpeta de datos derivados ( Gracias Stunner )
Para versiones beta de Xcode:
Vea la respuesta original a continuación y luego siga los pasos anteriores.
Respuesta original:
Probablemente aún tenga sus herramientas de xcodebuild configuradas en Xcode 9.0, que se compila con Swift 4.0 y es incompatible con Swift 4.0.1 de Xcode 9.1 beta.
Verifique en la terminal usando el comando:
xcodebuild -version
O simplemente vaya a las preferencias de Xcode -> Ubicaciones y verifique / cambie las herramientas de línea de comando a Xcode 9.1. Entonces deberías estar listo.
Swift Language Version
que Swift 4
para aquellos. Entonces funcionó.
Mi problema se debió a que no se estaba compilando un marco externo para Swift 4.0.2. Había agregado este archivo a través de Carthage , por lo que ejecuta:
carthage update --platform iOS
Y luego limpiar el proyecto cmd + shift + k
y la carpeta de compilación cmd + option + shift + k
y eliminar la carpeta de datos derivados (simplemente moverlo a la papelera también funciona) funcionó para mí.
En mi caso, descargué la versión Beta de xCode 11 para probar SwiftUI. Cuando ejecuto mi proyecto, aparece el error "El módulo compilado con Swift 5.1 no puede ser importado por el compilador Swift 5.0.1: ..." .
Para solucionar este problema. Cambié la herramienta de línea de comando xCode a la nueva herramienta de línea de comentarios xCode 11. Después de eso, puede crear un nuevo proyecto de xcode con SwiftUI.
Xcode -> Preferencias -> Ubicación -> Herramienta de línea de comandos de XCode
Espero que esto ayude a alguien que quiera probar con nuevo freamework :)
Instale Xcode Toolchain de la versión específica de Xcode que estaba funcionando para usted desde aquí .
Una cadena de herramientas de Xcode incluye una copia del compilador, lldb y otras herramientas relacionadas necesarias para proporcionar una experiencia de desarrollo coherente para trabajar en una versión específica de Swift.
Abra las Preferencias de Xcode, vaya a Componentes> Cadenas de herramientas y seleccione la cadena de herramientas Swift instalada.
Esto le permitirá compilar y ejecutar la aplicación por ahora.
Encontré este problema con Xcode 10 beta, que agrega Swift 4.2. Mi problema no estaba relacionado con Carthage ni con ninguna dependencia externa.
Vaya a YourTarget > Build Settings > Swift Language Version
para todos sus objetivos de Xcode.
Los míos estaban listos Swift 4
.
Después de agregar una fase de compilación de archivos de copia, comencé a recibir el error
: 0: error: el compilador de Swift 4.2 no puede importar el módulo compilado con Swift 4.1.2: /Users/user/Library/Developer/Xcode/DerivedData/MyApp-faskfrihumfcdibjxisjvbfshppp/Build/Intermediates.noindex/MyApp.build/Debug/ MyAppExtension.build/Objects-normal/x86_64/MyClass~partial.swiftmodule
El comando MergeSwiftModule falló con un código de salida distinto de cero
Luego configuré cada objetivo Swift Language Version
en Swift 4.2
, lo que eliminó el error.
Sin embargo, no estoy seguro de por qué se produjo el error en primer lugar, ya que tener todos los objetivos establecidos en Swift 4
debería ser igualmente válido.
Build Settings
En mi caso (Xcode 9.2):
Fui a xcode Preferences > Locations > Derived Data
Luego eliminé los datos e hice una compilación limpia y estaba bien.
En mi caso, utilicé CocoaPods con un complemento cocoapods-binary
para preconstruir bibliotecas en binarios. Después de actualizar Xcode de 10 a 11, Xcode me da este error:
Module compiled with Swift 5.0.1 cannot be imported by the Swift 5.1 compiler
Lo soluciono eliminando el /Pods
directorio y ejecutándolo pod install
.
En mi caso, volví a compilar el marco con la versión de la que se quejaba.
Para volver a compilar, ejecute pod update
o actualice carthage (cualquiera que esté usando) y compile el proyecto.
Luego busque el marco en el buscador. Copie y pegue theFramework.framework
en su proyecto y asegúrese de "Copiar elementos si es necesario". Cree el proyecto de nuevo y debería funcionar.