Как узнать, какую версию Swift я использую?

335

Я только что создал новый проект Swift в Xcode. Мне интересно, какая версия Swift использует.

Как я могу видеть, в Xcode или терминале, какую версию Swift я использую в своем проекте?

  • 6
    Помимо заголовка stackoverflow.com/questions/29140476/… Я не нахожу сходства с этим вопросом, этого достаточно, чтобы обозначить этот вопрос как дубликат . Суть этого вопроса заключается не в том , чтобы найти версию Swift программно, но как найти версию Swift в общем виде (через терминал или Xcode или т.п.). Это большая разница.
Теги:
xcode
terminal

7 ответов

87
Лучший ответ

В настройке сборки проекта есть блок Swift Compiler - Languages, в котором хранится информация о Swift Language Version в формате ключа. Он покажет вам всю доступную (поддерживаемую) версию Swift Language для вашего Xcode и активной версии также по метке.

Проект ► (Выберите цель проекта) ► Настройки сборки ► (Тип "swift" в панели поиска) Язык Swift для компилятора ► Swift Language Версия ► Нажмите "Список языков", чтобы открыть его.

Посмотрите на этот снимок, чтобы легко понять:

Изображение 1641


С помощью следующего кода программно вы можете найти версию 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)

Изображение 1642

  • 9
    Я думаю, что это правильный ответ. Проще, чем звонить в терминал. (особенно если у вас установлена другая версия Xcode)
  • 13
    Это правильный ответ, потому что Swift версия настроена для каждой цели.
Показать ещё 9 комментариев
432

Что я могу сказать в терминале:

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

  • 0
    Не волнуйтесь. Это может быть реальной проблемой!
  • 7
    Вы также можете использовать xcode-select -p чтобы напечатать путь к Xcode, который будет использовать xcrun, и sudo xcode-select -s /path/to/Xcode.app чтобы изменить его.
Показать ещё 8 комментариев
73

Откройте терминал и напишите:

swift -version
  • 9
    Это не обязательно версия Swift, которую видит XCode. Кроме того, вы можете иметь быстрый без Xcode.
  • 1
    Ну, по крайней мере, это работает ~
57

Из 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 для этой целевой цели проекта.

  • 0
    Спасибо, сэр. Я получил много вещей из вашего ответа
17

Это сообщение 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:)

  • 1
    Я не могу найти это с помощью поиска «Использовать Legacy Swift Language Version» или «Legacy»
  • 0
    Я использую последнюю версию XCode 8.3.2 (8E2002) и Swift 3 там в версии Swift Language. Теперь я хочу изменить это на swift 2.3, но есть только один вариант swift 3.0, а второй не указан. так что, пожалуйста, расскажите, как это возможно? получить быстрый 2.3 в моем текущем проекте? @alexisSchreier
Показать ещё 1 комментарий
16

Вы можете видеть и выбирать, какую версию Swift для версии Xcode использовать в:

Цель Настройки сборки Версия Swift Language:

Изображение 1643

Это доступно в Xcode 8.3 и Xcode 9 (не проверили старые версии)

  • 2
    Bledge edge ответ с Swift 4.0 :)
  • 2
    Swift Language Version не подходит в качестве настройки в моем проекте Xcode 8.2.1. У него действительно есть Use Legacy Swift Language Version .
Показать ещё 1 комментарий
-1

Проект ► (Выберите цель проекта) ► Настройки сборки ► (введите "swift" в панели поиска) Язык Swift для компилятора ► Быстрая версия языка ► Нажмите "Список языков", чтобы открыть его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню