目的
この記事はEditing a Package Dependency as a Local PackageというApple Documentをスクショ付きで実行していく記事です。
概要
SPMのDependencyはリモートのままでは編集することができません。ローカルのDependencyを追加するとSPM側で認識して上書きされ、ローカルのものが使われるようになり編集可能になります。リモート利用に戻したい時はローカルを取り除くだけです。
今回の記事ではこれを実行していきます。
手順
- OSSのプロジェクトのソースコードをダウンロードする(Cloneでもzipでも良い)
- 使いたいプロジェクトを開く
- ProjectNavigatorへコピーする
0. 問題発生
利用しているOSSでなんらかのクラッシュを引いてしまった...。でも自分が特に変な使い方をしているとも思えないので、ソースコードを編集しながら試してみたい。(CocoaPodsでは良くやっていた)
1. OSSのソースコードダウンロード
2. 使いたいプロジェクトを開く
プロジェクトファイルかワークスペースファイルを開くだけです。
3. Project Navigatorへコピーする
前準備として、パッケージ名とディレクトリ名が一致している必要があるので、zipでダウンロードすると「SwiftUI-master」という名前になっていて都合が悪いのでrenameしておきます。

そのディレクトリをProject Navigatorへコピーします。

コピーする前のProject Navigatorはこのようになっていました。
同名のパッケージをProject Navigatorに追加すると、Localの方で上書きされ、リモートの方は表示されなくなります。自分の場合、利用しているパッケージが1つだけだったのでSPMの表示ごと消えました。
おわりに
こうして無事にローカルで編集しながら作業を進めることが可能になりました。開発中はCloneしてきたレポジトリを利用してOSSにコミットしながら進めて、リリースする時はLocal Dependencyを削除してリモート版を使うなどの運用が良さそうではないでしょうか。
これで記事は終わりです。ありがとうございましたー。