📦

[Package]Swift Package Managerでライブラリを作成する

2023/04/16に公開

Swift Package Managerとは

"Swift Package Managerは、Swiftコードの配布を管理するためのツールです。Swiftのビルドシステムと統合されており、依存関係のダウンロード、コンパイル、リンクのプロセスを自動化できます。"swift.orgより

https://www.swift.org/package-manager/

使用編はこちらの記事で紹介しています

https://zenn.dev/ryodeveloper/articles/kame_ga_7_hiki

1. パッケージを作成する

2. 対応端末の定義

パッケージ名/Sources/Packageにパッケージの対応端末を定義します。
iOS16以上に対応させたい場合は.iOS(.v16)と記載します。

Package.swift
 import PackageDescription
 
 let package = Package(
     name: "MyLibrary",
+    platforms: [
+        .iOS(.v16),
+        .macOS(.v13),
+        .tvOS(.v16),
+        .watchOS(.v9),
+    ],
     products: [
         // Products define the executables and libraries a package produces, and make them visible to other packages.
         .library(
             name: "MyLibrary",
             targets: ["MyLibrary"]),
     ],
     dependencies: [
         // Dependencies declare other packages that this package depends on.
         // .package(url: /* package url */, from: "1.0.0"),
     ],
     targets: [
         // Targets are the basic building blocks of a package. A target can define a module or a test suite.
         // Targets can depend on other targets in this package, and on products in packages this package depends on.
         .target(
             name: "MyLibrary",
             dependencies: []),
         .testTarget(
             name: "MyLibraryTests",
             dependencies: ["MyLibrary"]),
     ]
 )

3. コードを書く

MyLibrary/Sources/MyLibraryの中にコードを書いていきます。
パッケージ外からアクセスしたい場合はアクセス修飾子をpublicにする必要があります。

SwiftUIView
import SwiftUI

public struct SwiftUIView: View {
    public init() {}

    public var body: some View {
        Text("Hello, World!")
    }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}

GitHubで配布する

セマンティック バージョニング に沿って決めると親切かもしれません
https://semver.org/lang/ja/

Discussion