はじめに
こんにちは、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を探しても見つからないときは試してみてもいいかもです。(筆者の場合これで大体のエラーは直った)
- ですが、一番はエラーが修正されたバージョンを見つけて、それを反映させるのがベターなやり方な気がしています、、、、