28 votes

Module compilé avec Swift 3.0 ne peut pas être importé dans Swift 2.3

C'est ce que je fais :

import BSTableViewReorder

et j'obtiens l'erreur suivante :

Le module compilé avec Swift 3.0 ne peut pas être importé en Swift 2.3

Que puis-je faire pour le compiler ? J'ai fait :

Modifier > Convertir -> Syntaxe Swift actuelle

Utilisation de Xcode 8 et macOS Sierra.

Pour les deux : la cible et le projet, j'ai les paramètres suivants de Utiliser la version de langage Swift obsolète

entrer la description de l'image ici entrer la description de l'image ici

Le projet est mon pod pour les dépendances cocoapods. Je viens de convertir le projet en Swift 3.0 mais ça ne compile pas.

27voto

Eugen Dimboiu Points 2160

Vous devrez changer la Version du langage Swift hérité en NON - cela garantit que votre projet utilisera Swift 3.

Si vous souhaitez empaqueter votre projet en tant que POD (pour Cocoapods), vous devrez ajouter un fichier nommé .swift-version (contenant une seule ligne, "3.0"). Cela indiquera à Cocoapods d'utiliser le compilateur Swift 3.

Tout devrait fonctionner après ces changements.

0voto

Payal Points 56

Si vous utilisez des frameworks tiers, mettez-les à jour une fois pour Xcode 8.1 et changez l'option Use Legacy Swift Language Version à NON.

0voto

shoe Points 410

Dans mon cas, les développeurs du framework ont ajouté cette ligne dans le code qui était destinée au fichier Podfile :

config.build_settings['SWIFT_VERSION'] = '2.3' # ou '3.0'

comme vous pouvez le constater, ils ont choisi par défaut '2.3', ce qui a posé problème car j'utilisais la version 3.0. en supprimant simplement '2.3' # ou et en laissant '3.0', le problème a été résolu.

0voto

mtc Points 79

Si les suggestions ci-dessus ne fonctionnent pas pour vous, essayez de supprimer ~Library/Developer/Xcode/DerivedData

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X