web-dev-qa-db-fra.com

mise à jour xcode 8 Swift avec erreur "Utiliser la version du langage Swift classique"

Quand j'ai ouvert mon projet dans Xcode 8, j'ai eu l'erreur suivante

Use Legacy Swift Language Version” (Swift_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly

se référant à un post similaire sur StackOverflow, utilisez la version en langage Swift héritée YES/NO. Mais ça ne marche pas pour moi en faisant OUI ou NON.

S'il vous plaît aider.

J'ai coché Utiliser les versions linguistiques Swift traditionnelles pour les options OUI/NON, veuillez vérifier la capture d'écran ci-jointe  Use Legacy Swift Language Version-YES

 Use Legacy Swift Language Version-NO

19
rakex

Ajoutez ceci à votre fichier pod:

# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'yourappname' do

pod 'yourpodlists'

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['Swift_VERSION'] = '2.3'  ## or '3.0'
        end
    end
end
end

Exécutez à nouveau pod-install. Nettoyez votre projet avec cdm + alt + shift + k. Nettoyez à nouveau en utilisant cmd + shift + k. Redémarrez Xcode. Construire. Maintenant ça devrait marcher.

Si vous n'utilisez pas de cocoapods, vous devriez pouvoir résoudre ce problème en définissant l'attribut Version du compilateur Use Legacy Swift Language Version de non spécifié à Oui ou Non.

Construire les paramètres du projet ou de la bibliothèque ->

 enter image description here

16
David Seek

 enter image description here 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.)
2
Aklesh Rathaur

essayez de convertir le code Swift en Swift3 ou en Swift 2.3 . modifier -> convertir -> en Swift actuel-> sélectionnez Swift 3 ou Swift 2.3. Cela fonctionnera.

2
Savitha

Si vous n'utilisez pas de pods, ajoutez ceci à votre Info.plist - je suis sur 2.3  enter image description here

comme l'option n'était pas répertoriée dans les paramètres de construction.

0
slashlos

En référence à this , Voici ce que j'ai conclu (pour Xcode 8):

  1. Si votre code est dans la version Swift = 2.3, il vous suffit de définir Utiliser la version linguistique Swift héritée sur OUI dans le paramètre de construction et vous pourrez continuer.
  2. Si votre code est en version Swift <2.3, alors: 

    i) convertissez votre code en Swift 2.3 et définissez 'Use Legacy Swift Language Version = YES' 

    OU

    ii) convertissez votre code dans la dernière version de Swift (éventuellement la version 3.0) et définissez 'Utiliser la version du langage Swift héritée = NON' 

Dans mon cas, j'ai utilisé une bibliothèque externe qui était dans Swift 2.2, causant des erreurs dans Xcode 8.0. Je remplace donc la même bibliothèque par Swift version 2.3 et ai utilisé la solution 2.i ci-dessus. Maintenant tout va bien.

J'espère que cela aidera quelqu'un qui cherche la solution à ce problème.

0
iAkki