Как узнать, какая версия Swift у меня установлена?
Как узнать версию Swift: полное руководство
Привет! Твой вопрос очень популярен среди новичков. Путаница возникает потому, что Swift может быть установлен в нескольких местах, и версии могут отличаться. Давай разберем все способы по порядку.
1. Версия Swift в терминале (системная)
Команда swift --version показывает версию Swift, установленную через Xcode Command Line Tools или отдельно. Это не всегда та версия, которую использует твой проект в Xcode.
// В терминале:
$ swift --version
Apple Swift version 5.9 (swiftlang-5.9.0.128.108)
Target: arm64-apple-macosx14.0
Если ты установил несколько версий Xcode, терминал использует ту, которая выбрана через xcode-select. Проверить и сменить:
// Показать текущий путь к Xcode
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
// Сменить на другую версию Xcode (например, Xcode 14)
$ sudo xcode-select -s /Applications/Xcode_14.app/Contents/Developer
2. Версия Swift в Xcode (для конкретного проекта)
В Xcode открой настройки проекта (Project > Build Settings). Найди Swift Language Version. Там может быть:
- 5.0 — базовая совместимость (все версии Swift 5.x поддерживают этот режим)
- 4.2, 4.0 — для старых проектов
- 5.9 — если ты вручную выбрал конкретную версию
Важно: Если стоит 5.0, это минимальная поддерживаемая версия, а не текущая. Твой код все равно компилируется последней версией Swift, которая есть в Xcode. Проверить, какая версия Swift встроена в твой Xcode:
// В терминале:
$ xcrun swift --version
Apple Swift version 5.9 (swiftlang-5.9.0.128.108)
3. Версия Swift в коде (runtime)
Да, можно проверить версию прямо в Swift-коде. Это полезно для условной компиляции:
import Foundation
// Проверка версии Swift во время компиляции
#if swift(>=5.5)
print("Swift 5.5 или новее — поддерживается async/await")
#else
print("Старая версия Swift")
#endif
// Проверка версии во время выполнения (если нужно)
if #available(iOS 15, *) {
// Используем async/await
} else {
// Fallback на старый код
}
// Получить строку с версией Swift (доступно с Swift 5.0)
let version = swiftVersion
print("Текущая версия Swift: \(version)")
Константа swiftVersion определена в стандартной библиотеке начиная с Swift 5.0. Она возвращает строку типа "5.9".
4. Что делать, если версии отличаются?
Если в терминале одна версия, а в Xcode — другая, это нормально. Xcode использует свой встроенный компилятор. Чтобы синхронизировать:
- Убедись, что Xcode, который ты используешь, выбран через
xcode-select - Перезапусти терминал после смены Xcode
- Для проектов в Xcode версия Swift задается в Build Settings — поставь
5.0для максимальной совместимости или конкретную версию, если нужны новые фичи
5. Быстрая шпаргалка
// Терминал:
swift --version // Системная версия
xcrun swift --version // Версия из активного Xcode
// Код:
#if swift(>=5.5) // Условная компиляция
let v = swiftVersion // Строка с версией (runtime)
Надеюсь, теперь стало понятнее! Если остались вопросы — пиши.
<<Альтернативный подход: проверка через меню Xcode и SPM
Если ты не любишь терминал, есть более визуальный способ узнать версию Swift в Xcode.
1. Через меню Xcode
Открой Xcode, затем в верхнем меню выбери:
- Xcode → About Xcode — увидишь номер версии Xcode (например, 15.0).
- Xcode → Preferences → Components — здесь показаны установленные симуляторы и инструменты командной строки.
К сожалению, сам Xcode не показывает прямо версию Swift в окне "About". Но ты можешь открыть Help → Xcode Help и в поиске ввести "Swift version" — откроется документация с указанием версии.
2. Через Swift Package Manager
Если ты используешь SPM (Swift Package Manager), версию Swift можно проверить в файле Package.swift твоего проекта. Там есть поле swift-tools-version:
// swift-tools-version:5.9
import PackageDescription
let package = Package(
name: "MyPackage",
...
)
Эта директива указывает минимальную версию инструментов Swift, которые нужны для сборки пакета. Если у тебя старая версия Swift, Xcode предложит обновиться.
3. Когда это полезно?
Этот метод удобен, если ты работаешь в команде и хочешь убедиться, что все используют одинаковую версию Swift. Просто проверьте swift-tools-version в корневом Package.swift.
Запомни: лучший способ — это xcrun swift --version в терминале, так как он показывает версию, которую реально использует Xcode.
Ответов пока нет.
Войдите чтобы оставить ответ
Блоги