the programming localizable language example apple ios swift xcode xcode9 swift4

ios - programming - El módulo compilado con Swift 4.0 no se puede importar en Swift 4.0.1



xcode 9 swift 4 (6)

En mi caso (Xcode 9.2):

Fui a Preferences > Locations > Derived Data Xcode Preferences > Locations > Derived Data

Luego eliminé los datos e hice una compilación limpia y estaba bien.

Sin embargo, he vuelto a compilar el marco utilizando 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 vainas / Cartago

Espero que alguien sepa


En mi caso, descargué la versión beta de xCode 11 para probar SwiftUI. Cuando ejecuto mi proyecto, recibí el mensaje "El módulo compilado con Swift 5.1 no puede ser importado por el compilador Swift 5.0.1: ..." error.

Para solucionar este problema. Cambié la herramienta de línea de comandos xCode a la nueva herramienta de línea de comentarios xCode 11. Después de eso, puede crear un nuevo proyecto xcode con SwiftUI.

Xcode -> Preferencias -> Ubicación -> Herramienta de línea de comando XCode

Espero que esto ayude a alguien que quiera probar con nuevos freamework :)


Instale Xcode Toolchain de la versión específica de Xcode que estaba trabajando para usted desde here .

Una cadena de herramientas 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, navegue a Componentes> Cadenas de herramientas y seleccione la cadena de herramientas Swift instalada.

Esto te permitirá compilar y ejecutar la aplicación por ahora.


Llegué a este problema con Xcode 10 beta, que agrega Swift 4.2. Mi problema no estaba relacionado con Cartago ni con ninguna dependencia externa.

Vaya a YourTarget > Build Settings > Swift Language Version para todos sus objetivos de Xcode.

Los míos estaban configurados en 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.2.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é la Swift Language Version de Swift Language Version cada objetivo 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.


Mi problema se debió a que no se compilaba un marco externo para Swift 4.0.2. Agregué este archivo a través de Carthage , así que ejecuté:

carthage update --platform iOS

Y luego, limpiar el proyecto cmd + shift + k y crear la carpeta cmd + option + shift + k y eliminar la carpeta de datos derivados (simplemente moverla a la papelera también funciona) funcionó para mí.


Actualizar:

Para versiones de lanzamiento de Xcode:

Este error (y errores similares que involucran a Swift 4.1, 4.2, etc.) ocurrirán al abrir un proyecto con Xcode 9.1, 9.2, 9.3, 9.4, 10, etc. que usa marcos que fueron construidos con herramientas anteriores de Xcode.

Para solucionar el problema, actualice y reconstruya sus marcos utilizando 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 descritos a continuación en la respuesta original.

Es posible que también necesite 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 necesite 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 todavía tenga sus herramientas 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.

Regístrese en la terminal con 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. Deberías estar listo entonces.