Jak naprawić błąd „SWIFT_VERSION '3.0' jest nieobsługiwany, obsługiwane wersje to: 4.0, 4.2, 5.0” w Xcode 10.2?

118

Próbuję uruchomić pobrany z aplikacji, spróbuj otworzyć w Xcode i mam błąd:

„Wyświetlanie ostatnich wiadomości
: -1: SWIFT_VERSION '3.0' nie jest obsługiwany, obsługiwane wersje to: 4.0, 4.2, 5.0. (W docelowym 'SimpleWeather')”

Dodano zrzut ekranu

vlad uvarov
źródło
Zaktualizuj rzeczy.
Wersja
2
Używam Xcode 10.2 i próbuję otworzyć starą wersję 3.0, ale nie mogę uruchomić programu, ponieważ mam błędy.
vlad uvarov
Otwórz i zaktualizuj projekt w Xcode 10.1. Na dysku można mieć wiele różnych wersji Xcode.
vadian
1
zaktualizowana wersja Xcode; (
vlad uvarov
7
O MÓJ BOŻE!!! Pobranie XCode 10.2 zajęło mi trzy godziny tylko po to, aby dowiedzieć się, że nie mogę już tworzyć moich aplikacji. Nie mam kopii zapasowej XCode 10.1! To po prostu szaleństwo, za które Apple powinno mi zapłacić.
vojta

Odpowiedzi:

99

Wybierz docelowy „SimpleWeather” w projekcie i zmień wersję językową Target-> ustawienia kompilacji -> Swift język kompilatora -> wybierz 5, 4.2 itd.

obraz ustawienia kompilacji do zmiany języka kompilatora

Xeneka
źródło
76

******** Najprostszy sposób: **********

1. Kliknij PODs w lewej kolumnie.

2. W środkowej kolumnie wybierz żądaną kapsułę, a następnie przejdź do „ustawień kompilacji” w prawym górnym panelu.

3. Następnie wyszukaj „Swift Language Version” i zmień na znaną wersję.

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

Kingsley Mitchell
źródło
1
Dziękuję. To jest odpowiedź, której szukam.
Vinu Jacob
Zrzut ekranu jest pomocny w szukaniu.
Namo
53

W przypadku Xcode 10.1 wybierz plik podów

wprowadź opis obrazu tutaj

-> Przejdź do Ustawień kompilacji -> Wybierz swój Pod -> Wyszukaj „Swift” -> Przejdź do „Wersja językowa Swift” -> Ustaw żądaną wersję językową.

wprowadź opis obrazu tutaj

Deepak Chaudhary
źródło
9
To rozwiązanie nie działa, jeśli wersja Swift jest 3.xi masz lepszą wersję Xcode niż10.2
Juan P. Ortiz
12

Postępowałem zgodnie z instrukcjami na tej stronie i błąd nie został rozwiązany. Wreszcie wszedł do

$ vim MyProject.xcodeproj/project.pbxproj

i znalazłem dwa przypadki, w których

SWIFT_VERSION = 3.0;

nadal był przywoływany. Zmieniłem je na 5.0 i błąd zniknął. Nie jestem pewien, dlaczego ci dwaj nadal tam byli.

Forrest
źródło
1
Użyłem przewodnika Apple do migracji ze Swift 3.0 do 5.0, jednak asystent nie pokazywał żadnych sugestii. Jak tylko zmodyfikowałem te dwie linie w powyższej odpowiedzi, skłoniło mnie to do natychmiastowej migracji. Dzięki za udostępnienie tego rozwiązania @Forrest !
Kareem Jeiroudi,
Niesamowite! Cieszę się, że ci pomogło @KareemJeiroudi
Forrest
2
Dzięki, bardzo mi to pomogło. Szukałem w Google pół godziny i znalazłem rozwiązanie ...
Dharmik
2
U mnie też to zadziałało. Wykonywanie na nim zajęć i przykładowy projekt był w złej wersji.
Sixstring
11
  1. Wybierz projekt
  2. Wybierz kartę Ustawienia kompilacji
  3. Wybierz opcję języka Swift Compiler

wprowadź opis obrazu tutaj

Manoj Rawat
źródło
10

wprowadź opis obrazu tutajwybierz pod jak na obrazku i zmień szybką wersję językową, dzięki czemu możesz zaoszczędzić jeden dzień

wprowadź opis obrazu tutaj

Govind Wadhwa
źródło
7

Wygląda na to, że aplikacja może mieć stary kod wersji Swift, taki jak Swift 3.0 w twoim przypadku. W wydaniu Xcode w wersji 10.2 została uruchomiona wersja Swift 5.0. Xcode 10.2 nie obsługuje kompilatora dla wersji Swift 3.0. Możesz zmienić kompilator z Build Settings -> Swift Compiler - Language -> Swift Language Version -> Change it to Swift 5. Jeśli Twój kod jest zgodny z tą wersją językową, uruchomi go bez błędów.

Jednak tryb zgodności Swift 3 nie będzie obsługiwany w kompilatorze Swift 5. Swift 4.2 to ostatnia wersja Swift obsługująca tryb Swift 3. Istnieją ważne zmiany zarówno w powierzchni języka, jak i we wnętrzu jego implementacji w wydaniach następujących po Swift 3, które będą podstawą przyszłego (i trwałego) źródła i stabilności binarnej.

Więcej informacji można znaleźć pod linkiem poniżej. https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes/swift_5_release_notes_for_xcode_10_2

Jeśli naprawdę chcesz uruchomić aplikację, która ma starszy kod wersji Swift, musisz użyć starszej wersji Xcode. Możesz użyć Xcode w wersji 10.1, jest to kompilator obsługujący wersję Swift 3.0.

Innym alternatywnym sposobem jest migracja starego kodu Swift do nowej wersji wersji Swift. Możesz przeprowadzić migrację Swift 3.0 do Swift 4.0 w wersji Xcode 10.1.

Przewodnik po migracji można znaleźć w tym https://swift.org/migration-guide-swift4/

Bhavin_m
źródło
5

Natknąłem się na ten problem podczas tworzenia Cocoapod. .swift-versionW moim repozytorium znajdował się stary plik, który określał Swift 3.0.

Bieganie pod lib lint --verbosedoprowadziło mnie do tej pomocnej odpowiedzi:

Usuń .swift-versionplik, który jest obecnie przestarzały, i używaj tego swift_versionatrybutu tylko w podspec.

spec.swift_version = '5.0'Usunąłem plik i dodałem do mojego pliku podspec, aby naprawić problem.

Justin Vallely
źródło
5
  1. Sprawdź to:
    1. Kliknij nazwę projektu
    2. Kliknij cel
    3. Kliknij ustawienie Build
    4. W wersji językowej Swift: Wybierz Swift 4

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

programistów
źródło
4

Otworzyłem plik MyProject.xcodeproj (używając edytora VSCode)

i znalazłem kilka wierszy, w których

SWIFT_VERSION = 3.0;

(około linii 400, gdzie jest napisane /* Begin XCBuildConfiguration section */)

Zmień na SWIFT_VERSION = 5.0 lub inne. Potem mogłem zbudować i uruchomić projekt.

Dan Alboteanu
źródło
3

Wyszukaj Swift i kliknij dwukrotnie, a następnie zmień każdą niewłaściwą wersję.

wprowadź opis obrazu tutaj

ScottyBlades
źródło
1

Jeśli masz wiele plików pod, tak jak ja, i masz problem ze znalezieniem modułu z SWIFT_Version = 3.0, wypróbuj pasek wyszukiwania

William
źródło
0

1) Zmień wersję poda w podfile (ponieważ biblioteka napisała starą wersję Swift)

2) „pod install” na terminalu

Erhan Demirci
źródło
0

Jestem nowy w rozwoju iOS. Po wykonaniu wszystkich powyższych odpowiedzi nadal otrzymuję ten sam błąd. Używałem Xcode 11 i pobrałem próbkę „ FoodTracker ” ze strony Apple Developer i otrzymałem ten sam błąd po próbie jej zbudowania. Zauważyłem, że projekt ma kilka ustawień odnoszących się do wersji językowej Swift po VIM zawartości pliku projektu. Więc rozwiązałem ten problem, ustawiając najpierw „Projekt> FoodTracker”, a także „CELE> FoodTracker” i „CELE> FoodTrackerTests” w Swift Language Version na 5.0. Mam nadzieję, że to pomoże.

Ustawianie wersji Swift Language w projekcie i WSZYSTKICH celach

Jo Poon
źródło
-1
  1. otwórz MyProject.xcodeproj / project.pbxproj w edytorze (np. Sublime)

przykład Calculator.xcodeproj

  1. Zmień nazwę wszystkich SWIFT_VERSION = 3.0; Zmień nazwę wszystkich SWIFT_VERSION = 5.0;

wprowadź opis obrazu tutaj

Lamhot
źródło