5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SwiftPMでローカルにあるSwift Packageをプロジェクトへ追加する

Last updated at Posted at 2020-11-15

SwiftPMで、ローカルにあるSwift Packageをプロジェクトへ追加したい場合があります。例えば、プロジェクトと依存パッケージを単一のリポジトリで扱いたい場合などです(モノレポ)。

SwiftPMの主要開発者の回答によると、プロジェクトへパッケージをドラッグアンドドロップすればOKとのことですが、少なくとも私の環境ではうまくいかない状況でした(この回答が「あるべき動き」だろうから、今後のアップデートで解消されていくとは思われますが)

この記事では、私の環境における現状(2020/11/15)のワークアラウンドをまとめます。

環境

  • MacBook Pro (Retina, 15-inch, Mid 2015)
  • macOS Catalina 10.15.7
  • Xcode 12.0

手順

  1. 追加したいSwift Packageを、ローカルのgitリポジトリにする。このgitリポジトリはあとで消すので、やり方は適当で構いません(git init; git add . ;git commit -m "init"する)
  2. 追加したいSwift Packageのディレクトリを、プロジェクトフォルダ内のどこかに置きます。
  3. 追加したいSwift Packageのディレクトリを、Xcodeプロジェクトにドラッグ&ドロップします。
  4. Xcodeのメニューから、[File] - [Swift Package] - [Add Package Dependency] と進み、当該のSwift Packageのパスを指定します。「file:// + フルパス」の形です。例えばfile:///Users/n/d/expProject/expdat/swiftPackageなどとなります。
  5. パスを修正します。テキストファイルとして.pbxprojを開き、file://で検索
    して4.で指定したパスを見つけ、相対パスに置き換えます。例えば./expdat/swiftPackageなどとします。
  6. Swift Packageのディレクトリから.gitディレクトリを削除します。

4.の時点で、すでにプロジェクトへの追加は完了していますが、ローカルでしか扱えず、Gitとかにpushができない状態になります。それを解消するために5.6.の手順を行っています。

以上です。

5
5
1

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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?