Apparemment, j’ai réussi à construire mon projet sous Xcode 9 beta et maintenant je n’ai plus que l’erreur
Le module compilé avec Swift 4.0 ne peut pas être importé dans Swift 3.1
Lorsque j'exécute le projet dans Xcode 8. Le module dans mon cas est Alamofire. J'ai essayé de redémarrer Xcode mais rien ne se passe, aucune idée pour résoudre ce problème?
Vous avez deux options que vous pouvez faire:Clean
le projet, puis essayez de re-build
votre solution et voyez si cela fonctionne.
Si cela ne fonctionne pas et que vous obtenez toujours le même message d'erreur, procédez comme suit et cela devrait fonctionner pour vous:
podfile
et supprimez Alamofire
pod update
Alamofire
à votre podfile
pod update
clean
votre projet et lancez-leMême problème ici mais en utilisant Carthage. Et voici la réponse:
rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
Carthage
pour le projetcarthage update --platform iOS
Et voilà!
J'ai eu le même problème et le nettoyage du dossier de construction a aidé:
Command+Option+Shift+K
ou
Product
-> Option+Clean
Supprimer simplement les données dérivées a fonctionné pour moi, pas besoin de réinstaller Pod
Ajoutez les lignes suivantes à la fin de votre fichier 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
J'ai rencontré ce problème dans un projet où la dépendance est gérée par Carthage. Dans mon cas, je n'ai pas défini l'outil de ligne de commande dans xcode (saisissez xcodebuild -version, vous saurez si vous l'avez configuré ou non), aussi la première étape consiste à aller à XCode -> Préférences -> Emplacements puis sélectionnez le xcode que vous souhaitez utiliser comme outil de ligne de commande. Ensuite, vous pouvez suivre les étapes mentionnées par @Domsware ci-dessus pour reconstruire tous les frameworks que vous allez utiliser.
=============================================
Même problème ici mais en utilisant Carthage. Et voici la réponse:
rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
delete the Carthage folder for the project
Update Carthage: carthage update --platform iOS
=============================================
Ensuite, n'oubliez pas de supprimer les anciens liens sous "Structures et bibliothèques liées" et faites glisser tous les structures du dossier/Carthage sous votre projet vers "Structures et bibliothèques liées".
Alors voilà!
Je suppose que pour ceux qui utilisent CocoaPods (Avertissement: je n’ai pas rencontré ce problème dans un projet où CocoaPods est le gestionnaire de dépendances), la solution serait exécutée dans le terminal:
$ pod deintegrate
$ pod clean
$ pod install
où vous pourriez avoir besoin d'installer les outils 'deintegrate' et 'clean' pour CocoaPod
$ Sudo gem install cocoapods-deintegrate cocoapods-clean
plus de détails voir post Comment supprimer CocoaPods d’un projet?