Структура, продукты, сборка/тестирование/запуск
Изучите структуру SwiftPM (Sources/ и Tests/), продукты (исполняемые файлы и библиотеки), а также сборку, тестирование и запуск с помощью CLI.
«Структура, продукты, сборка/тестирование/запуск» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.
Обзор
В этом уроке показывается структура SwiftPM, объясняется, как продукты сопоставляются с целями, и рассматривается CLI для сборки, тестирования и запуска.
Структура каталогов
SwiftPM ожидает каталоги Sources/ и Tests/. У каждой цели есть собственный каталог.
let tree = """
MyPkg/
├─ Package.swift
├─ Sources/
│ ├─ MyLib/ // library target sources
│ │ └─ MyLib.swift
│ └─ MyApp/ // executable target sources (main.swift)
│ └─ main.swift
└─ Tests/
├─ MyLibTests/
│ └─ MyLibTests.swift
└─ MyAppTests/
└─ MyAppTests.swift
"""
print(tree)Продукты и цели
Продукты предоставляют цели: библиотеки для повторного использования, исполняемые файлы для приложений и CLI. Тесты находятся в testTarget.
let manifest = """
// Package.swift (illustrative)
import PackageDescription
let package = Package(
name: "MyPkg",
products: [
.library(name: "MyLib", targets: ["MyLib"]),
.executable(name: "MyApp", targets: ["MyApp"])
],
targets: [
.target(name: "MyLib"),
.executableTarget(name: "MyApp", dependencies: ["MyLib"]),
.testTarget(name: "MyLibTests", dependencies: ["MyLib"])
]
)
"""
print(manifest)Библиотека и исполняемый файл
Библиотека предоставляет программные интерфейсы; исполняемый файл содержит точку входа main.swift и может зависеть от библиотеки.
// Library code (Sources/MyLib/MyLib.swift)
public struct Greeter {
public init() {}
public func hello(_ name: String) -> String { "Hello, \\(name)" }
}
// Executable entry (Sources/MyApp/main.swift)
let g = Greeter()
print(g.hello("World"))Основы CLI
Используйте CLI: команду swift для сборки, команду swift для запуска <исполняемого файла> и команду swift для тестирования. Добавьте -c release для оптимизированных сборок.
let cmds = """
# Build (debug by default)
swift build
# Run an executable product
swift run MyApp
# Execute tests (XCTest)
swift test
# Release build (optimized)
swift build -c release
"""
print(cmds)Результаты и советы
Результаты находятся в .build/. Делайте цели специализированными и размещайте тесты в Tests/<Target>Tests.
let notes = """
Artifacts live under .build/:
• debug/ and release/ contain compiled products
• x86_64-apple-macosx / arm64-apple-* vary by platform/arch
Tips:
• Keep one target per responsibility
• Name products simply; match target folders
• Put tests in Tests/<TargetName>Tests
"""
print(notes)Запуск тестов
Быстрая проверка: какая команда запускает тесты?
Повторение
Повторение: используйте стандартную структуру Sources/ и Tests/, сопоставляйте цели с продуктами и работайте с командами swift для сборки, swift для запуска и swift для тестирования.
Часто задаваемые вопросы
Урок «Структура, продукты, сборка/тестирование/запуск» бесплатный?
Да — полный текст урока «Структура, продукты, сборка/тестирование/запуск» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.
Чему я научусь в уроке «Структура, продукты, сборка/тестирование/запуск»?
Изучите структуру SwiftPM (Sources/ и Tests/), продукты (исполняемые файлы и библиотеки), а также сборку, тестирование и запуск с помощью CLI. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «Структура, продукты, сборка/тестирование/запуск»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы Swift Package Manager
- Структура, продукты, сборка/тестирование/запуск
- Импорт модулей и основы семантического версионирования