レイアウト、プロダクト、ビルド・テスト・実行
SwiftPMのレイアウト(Sources/とTests/)、プロダクト(実行可能ファイルとライブラリ)、CLIでビルド、テスト、実行する方法を学びます。
「レイアウト、プロダクト、ビルド・テスト・実行」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。
概要
このレッスンでは、SwiftPMのレイアウト、プロダクトとターゲットの対応関係、そしてbuild/test/run用の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)ライブラリと実行可能ファイル
ライブラリはAPIを公開し、実行可能ファイルには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 build、swift run <Exe>、swift testを使用します。最適化されたビルドには-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 build、swift run、swift testを使って開発します。
よくある質問
「レイアウト、プロダクト、ビルド・テスト・実行」レッスンは無料ですか?
はい。「レイアウト、プロダクト、ビルド・テスト・実行」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。
「レイアウト、プロダクト、ビルド・テスト・実行」で何を学びますか?
SwiftPMのレイアウト(Sources/とTests/)、プロダクト(実行可能ファイルとライブラリ)、CLIでビルド、テスト、実行する方法を学びます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。
「レイアウト、プロダクト、ビルド・テスト・実行」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Swift Package Managerの基本
- レイアウト、プロダクト、ビルド・テスト・実行
- モジュールのインポートとセマンティックバージョニングの基本