J'ai un projet Objective-C dans Xcode 8 Beta 3. Depuis la mise à jour, chaque fois que j'essaye de construire, je reçois l'erreur suivante:
«Utiliser la version de langue héritée de Swift» (SWIFT_VERSION) doit être configuré correctement pour les cibles qui utilisent Swift. Utilisez le menu [Edition> Convertir> En syntaxe Swift actuelle…] pour choisir une version Swift ou utilisez l'éditeur des paramètres de build pour configurer directement le paramètre de build.
Quelqu'un a-t-il rencontré cela? Puisqu'il s'agit d'un projet Objective-C, il n'y a pas de paramètre de construction pour configurer Swift. J'ai également vérifié qu'aucune des dépendances du projet ou CocoaPods n'utilise Swift. La seule solution que j'ai est d'utiliser la bêta 2. Des idées sur la façon de résoudre ce problème?
Je dois également mentionner que j'utilise OSX 10.12 Beta 2.
la source
Réponses:
Si vous utilisez CocoaPods et que vous souhaitez qu'il soit corrigé automatiquement à chaque fois que vous effectuez un
pod install
, vous pouvez ajouter ces lignes à la fin de votre Podfile:EDIT: ce problème est désormais résolu si vous utilisez CocoaPods v1.1.1 ou version ultérieure. N'oubliez pas de supprimer le
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
paramètre de vos principales cibles de projet.la source
2.3
plutôt une3.0
solution géniale! Cela fait effectivement le"Use Legacy Swift Language Version"
toNo
(ou si vous le changez en2.3
itYes
). L'avantage de cette option est cependant chaque fois que vouspod install
définissez ce paramètre automatiquement! Impressionnant. Je voisSWIFT_VERSION
se prépare sur Obj-C des projets ainsi. Je suppose qu'il n'y a pas d'effets indésirables?pod install / update
. Cette solution accélère les choses. Vous pouvez également mettre à jour votre version des Cocoapods maintenant: cela devrait également résoudre ce problème.Je viens de trouver un moyen de le réparer.
Accédez aux paramètres de génération du projet ou de la bibliothèque et définissez l'attribut Swift Compiler Version "Use Legacy Swift Language Version" de Unspecified sur Yes ou NO.
la source
pod install
je vous recommande d'utiliser la réponse de @Tulleb ci-dessus.J'ignore ce problème depuis un certain temps maintenant et je travaille juste sur d'autres choses en attendant - j'ai finalement trouvé la solution à mon problème.
Étant donné que mon projet est Objective-C, je pensais que l'un des pods que j'utilisais utilisait Swift, j'ai vérifié chaque pod et aucun 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 était de le passer en Objective-C.
la source
Ce problème est également visible dans Xcode-8.1. Lorsque nous ajoutons une nouvelle cible comme une extension ou un widget et une bibliothèque tierce est intégrée dans une nouvelle cible à l'aide de cocopodes. Après l' installation du pod . Nous pouvons faire face à la même erreur que ci-dessus.
Remplacez la version Use Legacy Swift Language dans chaque paramètre de création de bibliothèque par
la source
Si vous utilisez Xcode 8 ou une version ultérieure
la source
Ajoutez le code ci-dessous à la fin du podfile.
la source
Je travaille sur un projet qui mélange objectif-c et code swift. J'utilisais auparavant swift version 2.3 et après la mise à niveau vers swift 3, je n'ai pas pu 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. Il y avait Swift 3.0.1 spécifié:
Alors que j'avais déjà installé 3.0.2:
Sooo, je l'ai corrigé en changeant la version Swift dans le fichier project-pbxproj en:
Il semble que le spécificateur de version au niveau du correctif soit trop spécifique.
la source
Dans mon cas, je viens de faire les choses suivantes
Choisissez le projet cible => Aller au paramètre de construction => Rechercher «Swift Language Version» => donner à Value la version actuelle de Swift
C'est tout Il a résolu mon problème
la source
J'ai eu la même erreur. J'ai essayé de rechercher «Use Legacy Swift Language Version», mais je ne l'ai pas trouvé. J'utilise Xcode 8.3.3 Après avoir trop surfé et travaillé, j'ai trouvé cette solution, et cela a fonctionné pour moi.
la source
définissez «Utiliser la version de langue héritée de Swift» sur «OUI» si vous utilisez une ancienne version de swift dans votre projet ou tout tiers tiers rapide. "Non" si votre projet est mis à jour vers la version swift actuelle. si vous ne configurez pas votre version rapide, après chaque mise à jour et installation, le framework Pod doit le spécifier.
la source
En fait, j'ai dû faire une recherche sur «Legacy Swift» pour pouvoir le changer de non spécifié à «Oui». Lorsque j'ai simplement fait défiler vers le bas jusqu'à la section décrite ci-dessus, je n'ai pas pu le changer. J'espère que cela aidera quelqu'un.
la source
Mon projet est écrit en Swift. J'ai eu la même erreur avec
fastlane
. Ce qui s'est passé, c'est que mon Xcode a été mis à jour automatiquement, j'ai donc dû mettre à jour mon projet vers Swift 3.0. Vous avez une tonne d'erreurs. La correction et le débogage prenaient trop de temps et cela n'en valait pas la peine à ce moment-là, j'ai donc décidé d'installer une ancienne version de Xcode. Rendu mon code à 2.3. Alorsfastlane beta
ne fonctionnait plus. Il s'avère que j'avais besoin de définir l'outil de ligne de commande sur 7.3.la source
J'avais ce même problème et je l'ai résolu en procédant comme suit:
Dans Project> Build Settings:
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é dans la compilation a été de changer la SWIFT_VERSION dans le Podfile de 3 à 3.0 comme suggéré ici .
la source
À partir de XCode 8, vous pouvez utiliser swift 2.3 même si XCode 8 utilise swift 3.x comme version swift par défaut. Pour utiliser swift 2.3, il suffit d'activer l'indicateur Utiliser la version du langage Swift hérité sur OUI à partir du paramètre de construction, puis XCode utilisera Swift 2.3 pour cette cible de projet.
la source
Avant d'essayer des solutions compliquées, voici une vérification de base que vous devez faire si vous êtes nouveau sur Cocoapods et que vous rencontrez ce problème.
Vous devrez peut-être:
platform :ios, '10.1' # Put the right version and no #platform here use_frameworks! # For swift pod "MyPod" # Your mean pod :)
pod install
à nouveauC'est peut-être juste ça.
Sinon, vous pouvez aller au-dessus ;-)
la source
J'ai eu ce même problème après la mise à jour vers xcode 8.3.2 mais l'option "Use Legacy Swift Language" avait disparu. Cela semble être la possibilité de changer maintenant:
Utilisé ce correctif avec Alamofire et d'autres bibliothèques et tout fonctionne bien.
la source
Accédez au paramètre de création de projet pour le projet et Target en dessous de deux.
Passez à la dernière version
Swift 3
.Erreur résolue.
Si le problème est résolu, veuillez l'aimer.
la source
Dans Xcode 9 beta. Allez dans Paramètres du projet, Paramètres de construction, recherchez la version linguistique de Swift. Dans Xcode 9, vous devez spécifier si vous utilisez Swift 3.2 ou Swift 4.
la source
Si vous passez
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
àNO
ne fonctionne toujours pas, c'est à cause du problème de xcode, pas de votre problème. Effectuez les étapes suivantes:1.Changez la
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
propriété pour qu'elle soitYES
sur la cible d'avertissement2. Ensuite, il affichera un avertissement sur la barre de gauche qui vous recommande de passer à swift 3.0
3. revenez ensuite à
NO
. Reconstruisez le projet, le xcode détecte enfin votre modificationNO
!Problème résolu dans ce cas!
la source