0Pricing
Swift Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Swiftスクリプト(swift shebang)とコマンドラインツール
  2. C/Obj-C相互運用の概要(iOS固有の内容なし)
  3. SPMでバイナリをパッケージ化する
← Swift Academyに戻る