118 votes

Version en langage Swift de Xcode 9 (SWIFT_VERSION)

J'ai récemment mis à jour xcode pour la version 9. Avant que dans Xcode 8.x chaque fois que j'utilise pour faire pod update il me montre un code de mise à jour pour convertir le code Swift 3 et en faisant que de résoudre les erreurs. Mais maintenant, il me donne cette erreur:

Le "Swift Version en Langue" (SWIFT_VERSION) construire paramètre doit être réglé à une valeur prise en charge pour les cibles qui utilisent Swift. Ce paramètre peut être définir dans les paramètres de construction de l'éditeur.

Pour cette erreur, j'ai essayé d' Build Settings > Swift Language Version et il a été rapide 3.2 Mais comme la mise à jour d'appel a ré-installé certains des gousses comme Alamofire et il dit à installer Xcode 8.x pour convertir le code Swift 3, donc dois-je installer une autre version avec le dernier Xcode? Si oui, alors comment puis-je installer Xcode 8 avec Xcode 9?

183voto

Krunal Points 33551

La réponse à votre question:
Vous pouvez télécharger Xcode 8.x de Apple Portail de Téléchargement ou Télécharger Xcode 8.3.3 (ou voir: Où télécharger une ancienne version de Xcode), si vous avez premium compte développeur (apple id). Vous pouvez installer et travailler à la fois avec Xcode 9 et Xcode 8.x en single (mac) du système. (Assurez-vous que vous avez Command Line Tools soutenir à la fois la version de Xcode, pour travailler avec le terminal (voir: Comment faire pour installer la Ligne de Commande de l'Outil'))


Astuce: Comment migrer votre code Xcode 9 compatible Swift versions (Swift 3.2 ou 4)
Xcode 9 permet la conversion et la migration à partir d' Swift 3.0 de Swift 3.2/4.0 seulement. Donc si la version actuelle de Swift langue de votre projet est en dessous de 3.0 ensuite, vous devez migrer votre code Swift 3 version compatible à l'Aide de Xcode 8.x.

Ce qui est commun message d'erreur que Xcode 9 montre si il identifie Swift langue à moins de 3,0, au cours de la migration.

enter image description here


Swift 3.2 est pris en charge par Xcode 9 & Xcode 8 à la fois.

Projet ► (Sélectionnez Votre Projet Cible) ► Paramètres de construction ► (Type 'swift' dans la barre de recherche) Swift Langue de compilation ► Swift Version en Langue ► Cliquez sur la Langue de la liste pour l'ouvrir.

enter image description here



Convertir votre code source à partir de Swift 2.0 à 3.2 en utilisant Xcode 8 et ensuite continuer avec Xcode 9 (Swift 3.2 ou 4).


Pour faciliter la migration de votre code, suivez ces étapes: (il vous aidera à convertir dans la dernière version de swift pris en charge par votre Xcode Outil)

Xcode: Menus: Éditer ▶ Secrète ▶ Swift Actuel De La Syntaxe

enter image description here

53voto

R. Mohan Points 1275

Pour Objective-C, les Projets créés à l'aide de Xcode 8 et maintenant l'ouverture dans Xcode 9, il affiche le même message d'erreur tel que mentionné dans la question.

Pour corriger cela, Appuyez sur le bouton + dans les Paramètres de construction et sélectionnez Ajouter un Paramètre Défini par l'Utilisateur, comme indiqué dans l'image ci-dessous

build setting

Puis dans la nouvelle ligne créée ajouter SWIFT_VERSION comme la clé et l' 3.2 de la valeur comme ci-dessous.

enter image description here

Il va corriger l'erreur pour objectif c de projets.

7voto

nevan king Points 46410

Je viens de recevoir cette après la création d'un nouvel Objectif-C projet dans Xcode 10, après j'ai ajouté une Base de Données de fichier de modèle pour le projet.

J'ai trouvé deux façons de résoudre ce problème:

  1. Le Moyen le plus Facile: Ouvrez la Base de Données de modèle de dossier de l'Inspecteur (-1) et de modifier la langue de Swift à Objective-C

Change Core Data model language

  1. Plus long et plus dangereux de la méthode

Le modèle contient un "contenu" fichier avec cette ligne:

<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14460.32" systemVersion="17G5019" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">

Dans il y a un sourceLanguage="Swift" entrée. Changer en sourceLanguage="Objective-C" et l'erreur disparaît.

Pour trouver le "contenu" du fichier, cliquez droit sur l' .xcdatamodeld dans Xcode et faire "Afficher dans le Finder". Cliquez-droit sur le réel (Finder) fichier et faire "Afficher le Contenu du Paquet"

Aussi: Changer le modèle de la langue va s'arrêter Xcode depuis la génération d'objet géré sous-classe des fichiers en Swift.

1voto

digitaldaemon Points 51

Cela peut arriver lorsque vous avez ajouté des données de base à un projet existant.
Vérifier la:
<Nom> / <Nom> .xcdatamodeld / <Nom> .xcdatamodel / contents
fichier.
Ce fichier contient une entrée "sourceLanguage" qui (par défaut) aurait pu être définie sur "Swift". Changez-le en "Objective-C".

0voto

Atal Singh Points 59

Je viens de cliquer sur le dernier bouton de conversion rapide et de définir le paramètre de construction de la cible de l'application-> Version linguistique de Swift: swift 4.0,

J'espère que cela aidera.

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