Spec-Zone.ru › Swift

Система сборки

Рекомендуемый способ сборки серверных приложений — использование Swift Package Manager. SwiftPM предоставляет кроссплатформенную основу для создания кода Swift и хорошо подходит для одного кода, который можно редактировать и запускать на многих платформах Swift.

Сборка

SwiftPM работает из командной строки и интегрирована в Xcode.

Вы можете собрать свой код, выполнив swift build из терминала или вызвав действие сборки в Xcode.

Использование Docker

Swift-бинарные файлы зависят от архитектуры, поэтому выполнение команды сборки на macOS создаст бинарный файл для macOS, а аналогичная команда на Linux — бинарный файл для Linux.

Многие разработчики Swift используют macOS для разработки, что позволяет использовать отличные инструменты, которые поставляются с Xcode. Однако большинство серверных приложений предназначены для работы в Linux.

Если вы разрабатываете на macOS, Docker — полезный инструмент для сборки на Linux и создания бинарных файлов для Linux. Apple публикует официальные Swift Docker-образы на Docker Hub.

Например, чтобы собрать ваше приложение, используя последний Swift Docker-образ:

$ docker run -v "$PWD:/code" -w /code swift:latest swift build

Обратите внимание, если вы хотите запустить Swift-компилятор для процессоров Intel на Mac с чипом Apple Silicon (M1), добавьте --platform linux/amd64 -e QEMU_CPU=max в командную строку. Например:

$ docker run -v "$PWD:/code" -w /code --platform linux/amd64 -e QEMU_CPU=max swift:latest swift build

Вышеприведённая команда запустит сборку с использованием последнего Swift Docker-образа, используя bind mounts для исходных файлов на вашем Mac.

Режим отладки и релиз

По умолчанию SwiftPM собирает отладочную версию приложения. Обратите внимание, что отладочные версии не подходят для работы в производстве, так как они значительно медленнее. Чтобы собрать релизную версию вашего приложения, выполните swift build -c release.

Поиск бинарных файлов

Бинарные артефакты, которые можно развернуть, находятся в .build/x86_64-unknown-linux на Linux и .build/x86_64-apple-macosx на macOS.

SwiftPM может показать вам полный путь к бинарному файлу, используя swift build --show-bin-path -c release.

Сборка для производства

  • Соберите код для производства в режиме релиз, выполнив компиляцию с swift build -c release. Запуск кода, скомпилированного в режиме отладки, существенно повлияет на производительность.

  • Для наилучшей производительности в Swift 5.2 или более поздних версиях передайте -Xswiftc -cross-module-optimization (это не сработает в версиях Swift до 5.2) — проверка этого должна выполняться с помощью тестов производительности (как и любые изменения оптимизации), так как иногда это может привести к снижению производительности.

  • Интегрируйте swift-backtrace в ваше приложение, чтобы убедиться, что при сбоях выводятся трассировки стека. Трассировки стека не работают «из коробки» на Linux, и эта библиотека помогает заполнить этот пробел. В конечном счёте это станет языковой функцией и не потребует отдельной библиотеки.

The Swift Programming Language, Copyright © 2014-2025 Apple Inc.
Swift and the Swift logo are trademarks of Apple Inc.

Documentation for Swift 6.0.3


https://www.swift.org/documentation/server/guides/building.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API