"Использовать устаревшую версию языка Swift" (SWIFT_VERSION) необходимо правильно настроить для целей, которые используют Swift ".

С тех пор как я обновился до Xcode 8.2 (семена GM, из App Store), я застрял в следующей ошибке:

Использовать устаревшую версию языка Swift "(SWIFT_VERSION) требуется правильно настроен для целей, которые используют Swift. Используйте [Edit > Convert > To Current Swift Syntax...], чтобы выбрать версию Swift или используйте редактор настроек Build, чтобы напрямую настроить параметры сборки.

Итак, я пошел в свою целевую Настройки сборки и искал SWIFT_VERSION, чтобы увидеть, где я ошибался. Однако я с удивлением обнаружил, что он уже установлен на No!

Как это исправить?

Ответ 1

Xcode 8, кажется, неправомерно отображает несуществующий ( "phantom", если вы это сделаете) No. Для этого существует тривиальное исправление:

  • Нажмите на маленькую стрелку рядом с SWIFT_VERSION, чтобы переключить раскрывающийся список.
  • Задайте значения Debug и Release до Yes.
  • Установите значения Debug и Release обратно на No.

Изображение ниже было взято сразу после установки Debug на No. Xcode показывает, что для Debug и Release установлено значение No, однако SWIFT_VERSION читает <Multiple Values>:

введите описание изображения здесь

Из этого я могу только сделать вывод, что это ошибка; и что некоторое значение (или, скорее, нулевое значение) искажается как No.

Ответ 2

Выберите цель в pod alamofire, найдите "SWIFT_VERSION", выберите swift3. введите описание изображения здесь

Ответ 3

Xcode 8.3.2 перейти к:

Настройки сборки > Swift Compiler - Viersion > change Swift Version

.... работа

Ответ 4

На всякий случай, если кто-то еще сталкивается с той же проблемой, что и я.

У меня было приложение, которое было готово к запуску в хранилище приложений, но я ждал, между тем я обновился до Xcode 9 beta и стал возиться, изменил несколько вещей в моем приложении. Я пошел загружать его в магазин приложений, и он сказал, что вы не можете использовать бета-версии для загрузки, поэтому я вернулся к Xcode 8, но он начал давать мне ошибку "Swift Language Version (SWIFT_VERSION)...".

Мое исправление

В вашем проекте "Настройки сборки" > "Быстрая версия компилятора" > мне пришлось изменить это значение с Swift 4(currently not supported) на Swift 3.

Проблема решена:)

Ответ 5

phantom Нет ответа. Настоящая причина, по которой XCode нарушена, заключается в том, что Apples XCode "использует устаревшие настройки" - это действительно номер версии Swift. В XCode 8.1 "Нет" переведено в 3.0.1, в XCode 8.2 "Нет" переводится в 3.0. Поэтому вам нужно переключить версию на Swift 3.0. Это имеет смысл. Я думаю, ошибка была в XCode 8.1.

Мой git diff:

--- a/ios/myapp.xcodeproj/project.pbxproj
+++ b/ios/myapp.xcodeproj/project.pbxproj
@@ -1757,7 +1757,7 @@
                                SDKROOT = iphoneos;
                                SKIP_INSTALL = YES;
                                SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-                               SWIFT_VERSION = 3.0.1;
+                               SWIFT_VERSION = 3.0;
                                TARGETED_DEVICE_FAMILY = "1,2";
                        };
                        name = Debug;

Я вижу комментарий выше, который имеет тот же ответ, просто думаю, что ему нужно выделяться больше.

Ответ 6

У меня была такая же проблема с "Использовать устаревшую версию языка Swift..", я решил ее, установив версию. Советы по устранению проблемы:

  • когда вы откроете цель, появится сообщение "Преобразовать в текущий быстрый синтаксис", вы должны выбрать "Позже", затем еще одно уведомление, по-прежнему выберите "Позже".
  • Если ваша цель уже добавлена ​​CocoaPods, добавьте этот код в конец вашего podFile:

    post_install do | установщик | installer.pods_project.targets.each do | target | target.build_configurations.each do | config | config.build_settings ['SWIFT_VERSION'] = '3.0' end end end

после добавления этого кода, пожалуйста, обновите cocoaPods.

  1. Нажмите pod file, там будет показан список всех сторонних библиотек. узнайте "Настройка сборки" для каждой библиотеки и выполните поиск по типам "Использовать устаревшую версию языка Swift", установите для нее значение "ДА".
  2. Могут быть некоторые предупреждения или ошибки, поступающие из загрузки версии, вы можете исправить их через приглашение красного круга.

----- Если вы не добавляете cocoaPods, вы можете установить версию целей YES (TARGETS- > Build Setting → Use Legacy Swift Language Version → YES)  Надеюсь, что это может вам помочь.

Ответ 7

У меня была такая же проблема вчера. Шаг исправления:

  • Настройки сборки → быстрый поиск, выбор использовать устаревшую версию с быстрым языком

  • Переключить no на yes → build. Вы получите больше ошибок.

  • Снова переключится, да нет. build → success!

Когда-нибудь яблоко заставит нас стать такими сумасшедшими:)

Все сделано.