1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

東京海洋大学NePPAdvent Calendar 2024

Day 13

[Swift]Package.swiftのライブラリのバージョン指定方法について

Posted at

はじめに

こんにちは、FJ2123です。
今回は、SPM(Swift Package Manager)を利用したマルチモジュール構成でアプリを開発する際の、Package.swiftのバージョン指定方法についての小ネタを書きたいと思います。

本題

import PackageDescription

let package = Package(
    name: "TestApp",
    platforms: [.iOS(.v17)],
    products: [
        .library(
            name: "AppFeature",
            targets: ["AppFeature"]
        )
    ],
    dependencies: [
        .package(url: "https://github.com/pointfreeco/swift-composable-architecture", exact: "1.16.1"),
    ],
    targets: [
        .target(
            name: "AppFeature",
            dependencies: [
                .composableArchitecture
            ]
        ),
    ]
)

extension Target.Dependency {
    static var composableArchitecture: Self { .product(name: "ComposableArchitecture", package: "swift-composable-architecture") }
}

上記のようなPackage.swiftがあったとするとき、
packageのdependenciesの部分で

exact: "1.16.1"

の部分を

branch:"main"

と指定することができる

File > Packages > Resolve Package Versions でバージョンの更新をすることを忘れずに!

懸念点

  • ライブラリのmainブランチのコードが使われるので、動かないということはほぼないとは思うが、発生しているエラーがissueを探しても見つからないときは試してみてもいいかもです。(筆者の場合これで大体のエラーは直った)
  • ですが、一番はエラーが修正されたバージョンを見つけて、それを反映させるのがベターなやり方な気がしています、、、、
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?