Используйте версию 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 (единственный вариант), и ошибка исчезла.