0Pricing
Swift Academy · 课时

布局、产品与构建/测试/运行

了解 SwiftPM 的布局(Sources/ 和 Tests/)、产品(可执行文件与库),以及如何使用 CLI 进行构建、测试和运行。

布局、产品与构建/测试/运行 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 3 节课。

概述

本课介绍 SwiftPM 的布局、产品如何映射到目标,以及使用 CLI 进行构建/测试/运行。

文件夹布局

SwiftPM 要求使用源代码目录和测试目录。每个目标都有自己的文件夹。

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)

构建产物与提示

输出位于构建目录中。请让目标各司其职,并将测试放在测试目录/<目标>测试下。

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)

运行测试

快速检查:哪个命令可以运行测试?

回顾

回顾:使用标准的源代码目录和测试目录布局,将目标映射到产品,并使用swift 构建、swift 运行和swift 测试。

常见问题解答

「布局、产品与构建/测试/运行」课时是免费的吗?

是的 — 「布局、产品与构建/测试/运行」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 3 节课。

「布局、产品与构建/测试/运行」这节课中我会学到什么?

了解 SwiftPM 的布局(Sources/ 和 Tests/)、产品(可执行文件与库),以及如何使用 CLI 进行构建、测试和运行。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Swift Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。

「布局、产品与构建/测试/运行」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Swift Academy 课中编写并运行代码吗?

能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Swift Package Manager 基础
  2. 布局、产品与构建/测试/运行
  3. 导入模块与语义化版本基础
← 返回 Swift Academy