Использование Устаревших Свифт Языковой Версии Xcode Версии 8.2

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

“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.

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

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

просто чтобы быть уверенным: я установил все мои цели Use Legacy Swift Language Version to No и проект работал нормально при компиляции в Xcode 8.1. Он не работает после обновления в Xcode 8.2.

// Edit 21.12.

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

9 ответов


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

enter image description here


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

вот копия интегральности список изменений Xcode 8.2.1:

Свифт

Решены Вопросы

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

Я получил ту же ошибку. Я попытался найти "Use Legacy Swift Language Version", но не нашел. Я использую 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.)

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


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

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

Открыть Xcode.


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

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

enter image description here

установите значение "Да". Затем "Build & Run" снова, чтобы проверить его.

проверьте этот пост: http://rebeloper.com/downgrade-swift-3-swift-2-3-xcode-8/


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


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

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

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

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

перезагрузка Xcode и сделать глубокий чистый холдинг option ключ

что избавился от чистой не удалось.

добавить на ваш РМО скрипт

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? Где эта установка?


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

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


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