SPMでバイナリをパッケージ化する
実行可能パッケージを初期化し、 product を設定して依存関係を追加します。共有可能な release バイナリを .build/release から生成します。
「SPMでバイナリをパッケージ化する」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。
SwiftPMの実行可能ファイルを使う理由
SwiftPMでは、配布できる実行可能ファイルをビルドできます。
- 実行可能パッケージを初期化する
- productsとターゲットを定義する
- 依存関係を追加する(セマンティックバージョン)
- リリースをビルドしてバイナリを見つける
初期化とビルドの基本
swift package init --type executableを使ってひな形を作成します。その後、swift buildとswift runでコンパイルして実行します。
// In your terminal (for reference):
// swift package init --type executable
// Files created: Package.swift, Sources/<Target>/main.swift, Tests/
// You can then run:
// swift build
// swift run
print("SPM exec template ready")main.swiftの構成
実行可能ターゲットはSources/<Target>/main.swiftから開始します。CLIの出力は短く、明確にしてください。
// Sources/App/main.swift (example content)
let args = CommandLine.arguments.dropFirst()
if args.contains("--help") {
print("app 1.0.0\\nUsage: app [--help] [name]")
} else if let name = args.first {
print("Hello, \\(name)!")
} else {
print("Hello from app 1.0.0")
}Package.swiftの基本
Package.swiftの基本:
- products:.executable(name:targets:)
- targets:ソースフォルダーと依存関係
- dependencies:外部パッケージ(from: "1.2.0"のようなセマンティックバージョンを使います)
プロダクトと依存関係の例
.executableプロダクトを宣言し、ターゲットの依存関係を設定します。安定性のため、外部パッケージはセマンティックバージョンで固定してください。
// Package.swift (illustrative)
// import PackageDescription
// let package = Package(
// name: "App",
// platforms: [.macOS(.v12)],
// products: [
// .executable(name: "app", targets: ["App"]),
// ],
// dependencies: [
// // Example: argument parser (replace with real URL in your project)
// // .package(url: "https://github.com/apple/swift-argument-parser", from: "1.2.0")
// ],
// targets: [
// .executableTarget(
// name: "App",
// dependencies: [
// // .product(name: "ArgumentParser", package: "swift-argument-parser")
// ]
// )
// ]
// )リリースビルドと成果物
.build/release/<product>にあるファイルを配布します。シンボルを削除し、配布用に圧縮することも検討してください。
// Produce an optimized binary:
// swift build -c release
// Artifact path:
// .build/release/app (product name)
//
// Optional strip symbols (platform-specific tool) or zip:
// # macOS example (illustrative)
// # strip .build/release/app
// # zip app-macos.zip .build/release/app
print("Release binary lives in .build/release/")リリース成果物の場所
確認問題:リリースバイナリはどこにありますか?
まとめ
まとめ:実行可能パッケージを初期化し、Package.swiftでプロダクトを定義し、セマンティックバージョンで依存関係を追加して、.build/releaseからバイナリを配布します。
よくある質問
「SPMでバイナリをパッケージ化する」レッスンは無料ですか?
はい。「SPMでバイナリをパッケージ化する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。
「SPMでバイナリをパッケージ化する」で何を学びますか?
実行可能パッケージを初期化し、 product を設定して依存関係を追加します。共有可能な release バイナリを .build/release から生成します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「SPMでバイナリをパッケージ化する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Swiftスクリプト(swift shebang)とコマンドラインツール
- C/Obj-C相互運用の概要(iOS固有の内容なし)
- SPMでバイナリをパッケージ化する