Используйте версию Legacy Swift Language - Xcode 8.2

После обновления до Xcode 8.2 компилятор выдает одну ошибку для моей цели приложения:

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

Но установите для него значение " No во всех моих целях. Пытался удалить производные данные, очистить каталог проекта, перезапустить Xcode. Ничего не помогает Кто-нибудь разбирается?

//Отредактировано

Просто чтобы быть уверенным: я установил для ВСЕХ моих целей Use Legacy Swift Language Version для No и проект работал нормально при компиляции в Xcode 8.1. Это не работает после обновления до Xcode 8.2.

//Редактировать 21.12.

Проблема была исправлена в Xcode 8.2.1

Ответ 1

Найдены работы вокруг. Я прошел через каждую цель (и параметры проекта, так как в проекте и цели) в моем проекте переключил "Использовать устаревшую версию языка Swift" от " Нет" до " Да" и вернуться к " Нет" для каждого. Затем проект был построен снова.

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

Ответ 2

Исправлено в Xcode 8.2.1.

Вот копия целочисленности журнал изменений Xcode 8.2.1:

Swift

Решенные проблемы

  • Исправлена ​​проблема, которая могла привести к сбою проекта с сообщением об ошибке "Использовать версию Legacy Swift Language" (SWIFT_VERSION), которая должна быть правильно настроена для целей, которые используют Swift "при использовании поддерживаемой версии Swift. (29667880)
  • Xcode больше не предупреждает об использовании устаревшего кода Swift 2.3, когда активная схема не ссылается на целевые объекты с использованием кода Swift 2.3. (29671741)

Ответ 3

Я получил ту же ошибку. Я попытался найти "Использовать устаревшую версию языка Swift", но не найден. Я использую Xcode 8.3.3 После серфинга слишком много и работая, я нашел это решение, и это сработало для меня.

Follow these steps.
1=> select your target from Xcode
2=> go to build setting
3=> search for "Swift Language Version"
4=> change it to swift 3. (or accordingly.)

Надеюсь, что эта работа для вас.

Ответ 4

Закройте Xcode и откройте соответствующий project.pbxproj в текстовом редакторе по вашему выбору.

Замените SWIFT_VERSION = 3.0.1; на SWIFT_VERSION = 3.0; для всех целей.

Повторно открыть Xcode.

Ответ 5

Это единственное, что сработало для меня...

Для ошибок с контейнерами. В принципе нам нужно включить "Legacy Swift Language". Выберите свою инфраструктуру pod (щелкнув ее в навигаторе ошибок), а в разделе "Настройки сборки" найдите "Использовать устаревшую версию языка Swift"

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

Установите значение "Да". Затем "Build and Run" снова проверьте его.

Отправляй сообщение: http://rebeloper.com/downgrade-swift-3-swift-2-3-xcode-8/

Ответ 6

Хорошо, я наконец понял это. Я удалил проект и снова клонировал его, перезапустил Xcode, запустил pod repo update и pod install, и он сработал. Я понятия не имею, почему.

Ответ 7

Это не сработало для нас:( Возвращение к Xcode 8.1 лучше всего до сих пор, пока Apple QA не начнет их до выпуска.

Если это какое-то утешение здесь, мы пытались и очень близко к нам. Мы застряли в Clean Failed:

rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache

rm -rf ~/Library/Preferences/com.apple.Xcode.plist

перезапустите Xcode и сделайте глубокую очистку, удерживая клавишу option

Это избавилось от Clean Failed.

Добавление этого в ваш pod script

post_install do |installer|

installer.pods_project.targets.each do |target|

target.build_configurations.each do |config|

config.build_settings['SWIFT_VERSION'] = '3.0'

end

end

end

Это способ, которым все контейнеры соответствуют 3.0, и мы действительно получили его для сборки, но в конце компиляции мы получили эту ошибку:

"Use Legacy Swift Language Version" (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.

Как изменить рабочее пространство, чтобы все проекты соответствовали SWIFT 3.0? Где эта настройка?

Ответ 8

Оказывается, Apple решила ссылаться на версию быстрого языка, которая еще не существует в файле pbxprojec. Они жестко закодированы 3.0.1, и вручную отредактировав sudo XML в pbx файле обратно до 3.0, все снова работало. Apple, очевидно, упустила простую работу с QA, прежде чем они выпустили 8.2

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

Ответ 9

Я получил ту же ошибку при преобразовании частей моего приложения (как Obj C, так и Swift) в фреймворк, но в моем случае это было не так, что "Swift Language Version" в настройках сборки не была установлена. Я установил его в Swift 3 (единственный вариант), и ошибка исчезла.