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:
- Abre tu
podfile
y eliminaAlamofire
- Ejecutar
pod update
- Vuelva a agregar
Alamofire
a supodfile
- Ejecutar
pod update
- Cuando termine,
clean
su proyecto y ejecútelo.