ios swift xcode xcode9-beta xcode9

ios - El módulo compilado con swift 4.0 no se puede importar en swift 3.1



xcode xcode9-beta (6)

Aparentemente, he logrado construir mi proyecto en Xcode 9 beta y ahora solo obtengo el error

El módulo compilado con swift 4.0 no se puede importar en swift 3.1

Cuando ejecuto el proyecto en Xcode 8. El módulo en mi caso es Alamofire. He intentado reiniciar Xcode pero no pasa nada ¿Cómo resolver este problema?


Agregue las siguientes líneas al final de su archivo pod:

post_install do |installer| print "Setting the default SWIFT_VERSION to 4.0/n" installer.pods_project.build_configurations.each do |config| config.build_settings[''SWIFT_VERSION''] = ''4.0'' end installer.pods_project.targets.each do |target| if [''SomeTarget-iOS'', ''SomeTarget-watchOS''].include? "#{target}" print "Setting #{target}''s SWIFT_VERSION to 3.0/n" target.build_configurations.each do |config| config.build_settings[''SWIFT_VERSION''] = ''3.0'' end else print "Setting #{target}''s SWIFT_VERSION to Undefined (Xcode will automatically resolve)/n" target.build_configurations.each do |config| config.build_settings.delete(''SWIFT_VERSION'') end end end end


El mismo problema aquí pero usando Cartago. Y aquí está la respuesta:

  • rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
  • Eliminar la carpeta de Carthage para el proyecto.
  • Actualización de Cartago: actualización de Cartago - carthage update --platform iOS

¡Y voilá!


Encontré este problema en un proyecto donde la dependencia es administrada por Carthage. En mi caso, no configuré la herramienta de línea de comandos en xcode (escriba xcodebuild -version, sabrá si lo configuró o no), por lo que el primer paso es ir a XCode -> Preference -> Locations seleccione el código x que desea que sirva como herramienta de línea de comandos. Luego, puede seguir los pasos que @Domsware mencionó anteriormente para reconstruir todos los marcos que va a usar.

================================================

El mismo problema aquí pero usando Cartago. Y aquí está la respuesta:

rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData delete the Carthage folder for the project Update Carthage: carthage update --platform iOS

================================================

Entonces, no olvide eliminar los enlaces antiguos en ''Marcos y bibliotecas vinculados'' y arrastre todos los marcos de la carpeta / Cartago de su proyecto a ''Marcos y bibliotecas vinculados''.

Entonces voilà!

Para aquellos que usan CocoaPods, sospecho (Descargo de responsabilidad: no encontré este problema en el proyecto donde CocoaPods es el administrador de dependencias) la solución se ejecutaría con el siguiente comando en la terminal:

$ pod deintegrate $ pod clean $ pod install

donde podría necesitar instalar la herramienta ''desintegrar'' y ''limpiar'' para CocoaPod

$ sudo gem install cocoapods-deintegrate cocoapods-clean

más detalles ver post ¿Cómo eliminar CocoaPods de un proyecto?


Simplemente eliminando los datos derivados que funcionaron para mí, no es necesario volver a instalar el Pod


Tuve el mismo problema y limpiar la carpeta de compilación me ayudó:

Command+Option+Shift+K

o

Product -> Option+Clean


Tienes dos opciones que puedes hacer:

Clean el proyecto y luego intente re-build su solución y ver si funciona.

Si no funciona y aún recibe el mismo mensaje de error, siga los siguientes pasos y debería funcionar para usted:

  1. Abre tu podfile y elimina Alamofire
  2. Ejecutar pod update
  3. Vuelva a agregar Alamofire a su podfile
  4. Ejecutar pod update
  5. Cuando termine, clean su proyecto y ejecútelo.