J'ai un projet Objective-C dans Xcode 8 Beta 3. Depuis la mise à jour, chaque fois que j'essaie de construire, le message d'erreur suivant s'affiche:
“Utiliser l'ancienne version Swift version linguistique” (Swift_VERSION) doit être configuré correctement pour les cibles qui utilisent Swift. Utilisez le menu [Edition> Convertir> Vers actuel Swift Syntaxe…] pour choisir une version Swift ou utilisez l'éditeur de paramètres de construction pour configurer directement le paramètre de construction.
Quelqu'un at-il rencontré cela? Comme il s'agit d'un projet Objective-C, il n'y a pas de paramètre de construction pour configurer Swift. Je me suis également assuré qu'aucune des dépendances du projet ou des CocoaPod n'utilisait Swift. La seule solution que j'ai est d'utiliser la version bêta 2. Avez-vous des idées pour résoudre ce problème?
Je devrais également mentionner que je suis sous OSX 10.12 Bêta 2.
J'ignore ce problème depuis un moment maintenant et je travaille sur d'autres choses entre-temps - j'ai finalement trouvé la solution à mon problème.
Comme mon projet est Objective-C, j'ai pensé que l'un des pods que j'utilisais utilisait Swift, j'ai vérifié chaque pod et aucun d'entre eux ne l'était.
La solution finale était que mon modèle Core Data était configuré pour générer du code dans Swift même si je les avais générés manuellement dans le menu Fichier> Nouveau> NSManagedObjectSubclass. Tout ce que j'avais à faire, c'était de passer à Objective-C.
Si vous utilisez CocoaPods et que vous voulez qu'il soit corrigé automatiquement chaque fois que vous effectuez un pod install
, vous pouvez ajouter ces lignes à la fin de votre fichier podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '3.0'
end
end
end
EDIT: Ce problème est maintenant résolu si vous utilisez CocoaPods version 1.1.1 ou ultérieure. N'oubliez pas de supprimer le paramètre ALWAYS_EMBED_Swift_STANDARD_LIBRARIES
de vos principales cibles de projet.
Ce problème est également visible dans Xcode-8.1. Lorsque nous ajoutons une nouvelle cible comme Extension ou Widget, une bibliothèque tierce est intégrée à la nouvelle cible à l'aide de cocopodes. Après Installation du pod . Nous pouvons faire face à la même erreur que ci-dessus.
Modifiez l’utilisation de Legacy Swift Version du langage dans chaque paramètre de construction de la bibliothèque en
Non .
Ajoutez le code ci-dessous à la fin du podfile.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '3.0'
end
end
end
Je travaille sur un projet qui combine les objectifs-c et Swift code que j'avais précédemment utilisé Swift version 2.3 et après la mise à niveau vers Swift 3, je ne pouvais pas construire le projet. Xcode s'est plaint du message d'erreur mentionné.
Apparemment, il y avait encore une version obsolète de Swift spécifiée dans mon fichier project.pbxproj. Swift 3.0.1 a été spécifié:
Swift_VERSION = 3.0.1;
Considérant que j’avais déjà installé la 3.0.2:
$ xcrun Swift -version
Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
Target: x86_64-Apple-macosx10.9
Sooo, je l'ai corrigé en remplaçant la version Swift dans le fichier project-pbxproj par:
Swift_VERSION = 3.0;
Il semble que le spécificateur de version de niveau de correctif était trop spécifique.
J'ai eu la même erreur. J'ai essayé de rechercher "Utiliser Legacy Swift Version linguistique", mais introuvable. J'utilise Xcode 8.3.3 Après avoir trop surfé et travaillé, j'ai trouvé cette solution et cela a fonctionné pour moi .
Here are the steps.
1=> select your target from Xcode
2=> go to build setting
3=> search for "Swift Language Version"
4=> change it to Swift 3. (or accordingly.)
définissez "Utiliser l'ancienne version Swift Version linguistique" sur "OUI" si vous utilisez une ancienne version de Swift dans votre projet ou toute partie tierce Swift. "Non" si votre projet évolue à la version actuelle Swift. Si vous ne configurez pas votre version Swift, après chaque mise à jour et installation, le cadre du pod doit le spécifier.
En fait, je devais faire une recherche sur "Legacy Swift" pour pouvoir le changer de non spécifié à "Oui". Lorsque je fis simplement défiler vers la section décrite ci-dessus, je ne pus pas le changer. J'espère que cela aidera quelqu'un.
Mon projet est écrit en swift. J'ai la même erreur avec fastlane
. Ce qui est arrivé est que mon Xcode a été mis à jour automatiquement. J'ai donc dû mettre à jour mon projet sous Swift 3.0. Vous avez une tonne d'erreurs. La réparation et le débogage prenaient trop de temps et cela ne valait pas la peine à ce moment-là, alors j'ai décidé d'installer une version plus ancienne de Xcode. Rétabli mon code en 2.3. Alors fastlane beta
ne fonctionnait plus. Il s'est avéré qu'il me fallait définir l'outil de ligne de commande sur 7.3.
À partir de XCode 8, vous pouvez utiliser Swift 2.3 même si XCode 8 utilise Swift 3.x comme version par défaut Swift. Pour utiliser Swift 2.3, activez simplement l’option Use Legacy Swift Language Version (Version du langage héritée) sur YES à partir du paramètre de construction, puis XCode utilisera Swift 2.3 pour cette cible de projet.
Aller à la configuration du projet pour projet et cible faire ci-dessous deux.
ALWAYS_EMBED_Swift_STANDARD_LIBRARIES = YES
And
Swift Compiler - Version = Swift 3
Passez à la dernière Swift 3
.
Erreur résolue.
Si le problème est résolu, corrigez-le.
Si vous changez ALWAYS_EMBED_Swift_STANDARD_LIBRARIES
en NO
ne fonctionne toujours pas, c'est à cause du problème de xcode et non de votre problème. Effectuer les étapes suivantes:
1.Change ALWAYS_EMBED_Swift_STANDARD_LIBRARIES
propriété à être YES
sur la cible d'avertissement
2.Alors, un message d’avertissement apparaîtra dans la barre de gauche, vous recommandant de passer à Swift 3.0.
3. Puis revenez à NO
. Reconstruisez le projet, le xcode détecte enfin votre modification en NO
!
Problème résolu dans ce cas!
Avant d’essayer des solutions compliquées, voici une vérification de base que vous devez effectuer si vous êtes nouveau sur Cocoapods et que vous rencontrez ce problème.
Vous pourriez avoir besoin de:
platform :ios, '10.1' # Put the right version and no #platform here use_frameworks! # For Swift pod "MyPod" # Your mean pod :)
pod install
à nouveau.Peut-être que c'est juste ça.
Si non, vous pouvez aller au-dessus ;-)
J'avais le même problème et je l'ai résolu en procédant comme suit:
Dans Projet> Paramètres de construction:
Always Embed Swift Standard Libraries = $(inherited)
Use Legacy Swift Language Version = YES
Puis dans mon podfile:
config.build_settings['Swift_VERSION'] = '3.0'
L'utilisation de ces trois paramètres a supprimé tous les avertissements et m'a permis de compiler correctement.
Le plus obscur et ce qui a réellement progressé pour la compilation était de changer Swift_VERSION dans le fichier podfile de 3 à 3,0 comme suggéré ici .
Dans Xcode 9 beta. Accédez à Paramètres du projet, Paramètres de construction, recherchez Swift Version linguistique. Dans Xcode 9, vous devez spécifier si vous utilisez Swift 3.2 ou Swift 4.