J'ai récemment mis à jour xcode vers la version 9. Avant cela, dans Xcode 8.x, chaque fois que j'utilise pour le faire, pod update
je montre un code de mise à jour pour convertir le code en Swift 3 et résoudre les erreurs. Mais maintenant, cela me donne cette erreur:
Le paramètre de construction «Version du langage Swift» (SWIFT_VERSION) doit être défini sur une valeur prise en charge pour les cibles qui utilisent Swift. Ce paramètre peut être défini dans l'éditeur des paramètres de construction.
Pour cette erreur, j'ai essayé Build Settings > Swift Language Version
et c'était Swift 3.2 Mais comme l'appel de mise à jour a réinstallé certains des pods comme Alamofire et il dit d'installer Xcode 8.x pour convertir le code en Swift 3, je dois donc installer un version supplémentaire avec le dernier Xcode? Si oui, comment puis-je installer Xcode 8 avec Xcode 9?
Réponses:
Réponse à votre question:
vous pouvez télécharger Xcode 8.x à partir du portail de téléchargement Apple ou télécharger Xcode 8.3.3 (ou voir: Où télécharger l'ancienne version de Xcode ), si vous avez un compte développeur premium (identifiant Apple). Vous pouvez installer et travailler avec Xcode 9 et Xcode 8.x dans un seul système (mac). (Assurez-vous que vous prenez en
Command Line Tools
charge les deux versions de Xcode, pour travailler avec le terminal (voir: Comment installer 'Command Line Tool' ))Astuce: Comment migrer votre code Versions Swift compatibles Xcode 9 (Swift 3.2 ou 4)
Xcode 9 permet la conversion / migration de
Swift 3.0
versSwift 3.2/4.0
uniquement. Donc, si la version actuelle de la langue Swift de votre projet est inférieure à 3.0, vous devez migrer votre code dans la version compatible Swift 3 à l'aide de Xcode 8.x.Il s'agit d'un message d'erreur courant que Xcode 9 affiche s'il identifie la langue Swift inférieure à 3.0, lors de la migration.
Swift 3.2 est pris en charge par Xcode 9 et Xcode 8 à la fois.
Convertissez votre code source de Swift 2.0 en 3.2 en utilisant Xcode 8, puis continuez avec Xcode 9 (Swift 3.2 ou 4).
Pour une migration plus facile de votre code, suivez ces étapes: (cela vous aidera à convertir en dernière version de swift prise en charge par votre outil Xcode)
la source
Pour les projets Objective C créés à l'aide de Xcode 8 et s'ouvrant maintenant dans Xcode 9, il affiche la même erreur que celle mentionnée dans la question.
Pour résoudre ce problème, 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
Ensuite, dans la nouvelle ligne créée, ajoutez
SWIFT_VERSION
comme clé et3.2
comme valeur comme ci-dessous.Cela corrigera l'erreur pour les projets objectif c.
la source
Je viens de le recevoir après avoir créé un nouveau projet Objective-C dans Xcode 10, après avoir ajouté un fichier de modèle Core Data au projet.
J'ai trouvé deux façons de résoudre ce problème:
Le modèle contient un fichier "contenu" avec cette ligne:
Il y a une
sourceLanguage="Swift"
entrée. Changez-le ensourceLanguage="Objective-C"
et l'erreur disparaît.Pour trouver le fichier "contenu",
.xcdatamodeld
faites un clic droit sur le dans Xcode et faites "Afficher dans le Finder". Cliquez avec le bouton droit sur le fichier (Finder) réel et faites "Afficher le contenu du paquet"Aussi: la modification de la langue du modèle empêchera Xcode de générer des fichiers de sous-classes d'objets gérés dans Swift.
la source
Cela peut se produire lorsque vous avez ajouté des données de base à un projet existant.
Vérifiez le fichier :
<Nom> / <Nom> .xcdatamodeld / <Nom> .xcdatamodel / contents
.
Ce fichier contient une entrée "sourceLanguage" qui (par défaut) aurait pu être définie sur "Swift". Changez-le en "Objective-C".
la source
Je viens de cliquer sur le dernier bouton de conversion rapide et de définir le paramètre de construction cible de l'application -> Version linguistique Swift: swift 4.0,
J'espère que cela aidera.
la source
Cette solution fonctionne lorsque rien d'autre ne fonctionne:
J'ai passé plus d'une semaine à convertir l'ensemble du projet et suis venu à une solution ci-dessous:
Commencez par désintégrer la dépendance cocopods du projet, puis commencez à convertir le projet vers la dernière version swift.
Accédez au répertoire du projet dans le terminal et tapez:
Cela désintègrera les cocopodes du projet et aucune trace de CocoaPod ne sera laissée dans le projet. Mais en même temps, cela ne supprimera pas le xcworkspace et les podfiles. Ce n'est pas grave s'ils sont présents.
Maintenant, vous devez ouvrir xcodeproj (et non xcworkspace) et vous obtiendrez beaucoup d'erreurs car vous avez appelé les méthodes de dépendance cocoapods dans vos projets principaux.
Donc, pour supprimer ces erreurs, vous avez deux options:
Une fois toutes les erreurs supprimées, vous pouvez convertir le code vers la dernière version Swift.
Parfois, si vous rencontrez des erreurs étranges, essayez de nettoyer les données dérivées et réessayez.
la source
peut-être avez-vous besoin de télécharger la chaîne d'outils. Cette erreur se produit lorsque vous n'avez pas la bonne version du compilateur swift.
la source
Dans mon cas, tous les avertissements ont disparu après avoir directement changé la version swift de 2.x à 4.0 dans les paramètres de construction, sauf deux avertissements.
Ces avertissements liés à
myprojectnameTests
etmyprojectnameUITests
dossier. Je n'ai pas remarqué et j'ai pensé que c'était lié à l'immigration directe de Xcode 7 à Xcode 9 et je pensais que je ne pouvais pas résoudre ce problème et que je devrais installer la version manquée de Xcode 8.Dans mon cas, j'ai supprimé ces dossiers et tous les avertissements ont disparu, mais vous pouvez recréer ce dossier et contient en utilisant ceci:
file > new > target > (uitest or unittest extensions)
et utilisez cet article pour créer des cas de test: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html
la source