web-dev-qa-db-fra.com

“Utiliser la version linguistique Swift existante” (Swift_VERSION) doit être configuré correctement pour les cibles qui utilisent Swift. "

Depuis que j'ai mis à jour Xcode 8.2 (graine GM de l'App Store), je suis bloqué à l'erreur suivante:

Use Legacy Swift Language Version ”(Swift_VERSION) doit obligatoirement être configuré correctement pour les cibles utilisant Swift. Utilisez le bouton [Edit> Convertir> Vers la syntaxe Swift actuelle…] pour choisir une version Swift ou utilisez l'éditeur de paramètres de construction pour configurer directement le paramètre de construction.

Je suis donc allé dans Paramètres de construction de ma cible et j'ai recherchéSwift_VERSIONpour voir où je me suis trompé. Cependant, j'ai été surpris de constater qu'il était déjà réglé surNo!

Comment puis-je réparer ça?

16
Vatsal Manot

Xcode 8 semble afficher à tort un non-existant ("fantôme", si vous voulez) No. Il y a un correctif trivial pour cela:

  1. Cliquez sur la petite flèche en regard de Swift_VERSION pour basculer dans la liste déroulante.
  2. Définissez les valeurs pour Debug et Release à Yes.
  3. Définissez les valeurs pour Debug et Release à No.

L'image ci-dessous a été prise juste après le réglage de Debug sur No. Xcode montre que Debug et Release sont définis sur No, mais Swift_VERSION lit <Multiple Values>:

 enter image description here

A partir de cela, je ne peux que conclure que c'est un bug; et qu'une valeur (ou plus probablement une valeur nulle) est représentée sous la forme No.

15
Vatsal Manot

Veuillez sélectionner la cible dans pod alamofire, recherchez 'Swift_VERSION', sélectionnez Swift3.  enter image description here

17
Prakash Raj

Xcode 8.3.2 aller à:

Paramètres de construction> Compilateur Swift - Version> changer la version de Swift

....travaux

7
Minja

Juste au cas où quelqu'un d'autre se heurterait au même problème que je viens d'avoir.

J'avais une application prête à être lancée sur l'App Store, mais j'attendais. En attendant, je me suis mise à jour vers la version bêta de Xcode 9 et je déconnais, j'ai changé quelques éléments de mon application. Je suis allé le télécharger sur l'App Store et il a été dit que vous ne pouviez pas utiliser les versions bêta, donc je suis retourné à Xcode 8, mais il a commencé à me donner l'erreur «Swift Language Version» (Swift_VERSION) ...

Mon correctif

Dans votre projet Paramètres de construction> Version du compilateur Swift>, je devais le changer de Swift 4(currently not supported) à Swift 3.

Problème résolu :)

2
Timmy Sorensen

Le fantôme Aucune réponse ne fonctionnera. La vraie raison pour laquelle XCode est cassé est parce qu'Apples XCode "use legacy setting" est vraiment un numéro de version Swift. Dans XCode 8.1, "Non" est traduit en 3.0.1, dans XCode 8.2, "Non" est traduit en 3.0. Vous devez donc passer de la version à Swift 3.0. Ce qui a du sens. Était un bug dans XCode 8.1 je suppose.

Mon diff diff:

--- a/ios/myapp.xcodeproj/project.pbxproj
+++ b/ios/myapp.xcodeproj/project.pbxproj
@@ -1757,7 +1757,7 @@
                                SDKROOT = iphoneos;
                                SKIP_INSTALL = YES;
                                Swift_OPTIMIZATION_LEVEL = "-Onone";
-                               Swift_VERSION = 3.0.1;
+                               Swift_VERSION = 3.0;
                                TARGETED_DEVICE_FAMILY = "1,2";
                        };
                        name = Debug;

Je vois un commentaire ci-dessus qui a la même réponse pense simplement qu'il faut se démarquer plus.

1
Tom Andersen

J'ai eu le même problème hier. Étape fixe:

  1. Configurer les paramètres -> rechercher Swift, choix utiliser l'ancienne version linguistique de Swift

  2. Basculé non à oui -> construire. Vous aurez plus d'erreur.

  3. Retour bascule oui à non. construire -> succès!

Parfois, Apple nous rend si fous :)

Terminé.

0
xcodedeveloper

J'ai eu le même problème à propos de "Utiliser la version du langage Swift Legacy ..", je l'ai résolu en définissant la version. Les astuces pour résoudre le problème sont les suivantes:

  1. lorsque vous ouvrez la cible, un avis s'affichera pour "Convertir en syntaxe Swift actuelle", vous devez choisir "Plus tard", puis un autre avis également, toujours choisir "Plus tard".
  2. Si votre cible a déjà ajouté CocoaPods, veuillez ajouter ce code à la fin de votre podFile:

    post_install do | installer | installer.pods_project.targets.eachdo | target | target.build_configurations.eachdo | config | config.build_settings ['Swift_VERSION'] = '3.0' end end end

après avoir ajouté ce code, veuillez mettre à jour cocoaPods.

  1. Cliquez sur le fichier pod pour afficher la liste de toutes les bibliothèques tierces. recherchez le "paramètre de construction" de chaque bibliothèque et recherchez les types "Utiliser la version en langage Swift traditionnel", définissez sa valeur sur OUI.
  2. Il peut y avoir des avertissements ou des erreurs, il s’agit du téléchargement de la version, vous pouvez les corriger via l’invite du cercle rouge.

----- Si vous n’ajoutez pas cocoaPods, vous pouvez définir la version des cibles sur OUI (CIBLES-> Paramètre de construction -> Utiliser la version en langage Swift héritée -> OUI) J'espère que cela peut vous aider.

0
ZQ.delog