Я только что создал новый проект Swift в Xcode. Мне интересно, какая версия Swift использует.
Как я могу видеть, в Xcode или терминале, какую версию Swift я использую в своем проекте?
В настройке сборки проекта есть блок Swift Compiler - Languages, в котором хранится информация о Swift Language Version в формате ключа. Он покажет вам всю доступную (поддерживаемую) версию Swift Language для вашего Xcode и активной версии также по метке.
Проект ► (Выберите цель проекта) ► Настройки сборки ► (Тип "swift" в панели поиска) Язык Swift для компилятора ► Swift Language Версия ► Нажмите "Список языков", чтобы открыть его.
Посмотрите на этот снимок, чтобы легко понять:
С помощью следующего кода программно вы можете найти версию Swift, поддерживаемую вашим проектом.
#if swift(>=5.0)
print("Hello, Swift 5.0")
#elseif swift(>=4.1)
print("Hello, Swift 4.1")
#elseif swift(>=4.0)
print("Hello, Swift 4.0")
#elseif swift(>=3.0)
print("Hello, Swift 3.0")
#elseif swift(>=2.2)
print("Hello, Swift 2.2")
#elseif swift(>=2.1)
print("Hello, Swift 2.1")
#endif
Вот результат использования Playground (с Xcode 9.3 beta 4)
Что я могу сказать в терминале:
$ xcrun swift -version
Выход для Xcode 6.3.2:
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
Конечно, предполагается, что ваш xcrun
правильно указывает вашу копию Xcode. Если, как и я, вы жонглируете несколькими версиями Xcode, это может быть проблемой! Чтобы убедиться, что это так, скажем
$ xcrun --find swift
и посмотрите на путь к Xcode, который он вам показывает. Например:
/Applications/Xcode.app/...
Если это ваш Xcode, то вывод из -version
является точным. Если вам нужно перепечатать xcrun
, используйте всплывающее меню "Инструменты командной строки" в области предпочтений Xcode Locations.
xcode-select -p
чтобы напечатать путь к Xcode, который будет использовать xcrun, и sudo xcode-select -s /path/to/Xcode.app
чтобы изменить его.
Откройте терминал и напишите:
swift -version
Из Xcode 8.3 onward Build Settings
имеет ключ Swift Language Version
со значением быстрой версии, которую использует ваша цель.
Для старых Xcodes это решение используется, открыть терминал и ввести следующую команду (и)
Случай 1: вы установили только одно приложение Xcode
swift -version
Случай 2: вы установили несколько приложений Xcode
Переключатель active developer directory
(Заменить Xcode_7.3.app
от
следуя команде с вашим именем приложения приложения Xcode из каталога приложений, для которого вы хотите
для проверки быстрой версии)
sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
Тогда
swift -version
ПРИМЕЧАНИЕ.. От Xcode 8 до Xcode 8.2.x вы можете использовать swift 2.3, хотя Xcode 8 использует swift 3.x в качестве быстрой версии по умолчанию. Чтобы использовать swift 2.3, просто включите флаг Use Legacy Swift Language Version
в YES
из Build Setting
, а XCode будет использовать Swift 2.3 для этой целевой цели проекта.
Это сообщение reddit помогло мне: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
Xcode 8 использует Swift 3.0 по умолчанию. Но вы можете включить Swift 2.3. Перейдите в Project Build Settings и установите "Использовать устаревшую версию языка Swift" в YES.
Старый добрый reddit:)
Вы можете видеть и выбирать, какую версию Swift для версии Xcode использовать в:
Цель → Настройки сборки → Версия Swift Language:
Это доступно в Xcode 8.3 и Xcode 9 (не проверили старые версии)
Swift Language Version
не подходит в качестве настройки в моем проекте Xcode 8.2.1. У него действительно есть Use Legacy Swift Language Version
.
Проект ► (Выберите цель проекта) ► Настройки сборки ► (введите "swift" в панели поиска) Язык Swift для компилятора ► Быстрая версия языка ► Нажмите "Список языков", чтобы открыть его.