Sponsor Link
環境&対象
- macOS Monterey 12.4 beta2
- Xcode 13.3.1
- iOS 15.4
サンプルプロジェクトの扱い
SwiftPackage を公開したとき、ドキュメントやサンプルコードが用意されていると、実際に使ってもらう時のハードルが下がります。
ドキュメントやサンプルコードの他に、実際にすぐに動作させることができる プロジェクトがあると、動かしながら動作を確認することができますので、より分かりやすくなります。
ということで、example.xcodeproj のようなプロジェクトを SwiftPackage のそばに置いておくと便利な気がします。
ですが、サンプルプロジェクトを SwiftPackage に含めようとすると、手が止まります。
SwiftPackage は、Package.swift を使って管理されていますが、この Package.swift に サンプルプロジェクトを追加する方法がありません・・・
Package.swift は、.xcodeproj を理解しません
Swift Package は、Package.swift をダブルクリックすることで Xcode でも開けますが、.xcodeproj(Xcodeの通常のプロジェクト情報を持つファイル) があっても 使ってくれません。
そもそも、Package.swift に サンプルプロジェクトの情報を記述しても、サンプルプロジェクトはあくまでリファレンス的なものですので、あくまで補足的なものです。
つまり、サンプルプロジェクトを Package.swift に記述する方法はないようです。
別リポジトリにする手もあります
サンプルプロジェクトを用意する1つの方法は、SwiftPackage とは別のリポジトリを作成し、そのリポジトリへのリンク等を Readme に記載しておくことです。(実際に、このような形で公開されているリポジトリも多くあります。)
この方法も良いのですが、次に紹介する方法で 1つのリポジトリで管理することもできます。
サブフォルダの中に .xcodeproj
SwiftPackage は、Package.swift に記述された対象しか理解しません。つまり、サブフォルダを作成して、何かを配置しておいても エラーという扱いになりません。
このことを利用して、サブフォルダに サンプルプロジェクトを置いておくことができます。
1つのリポジトリに置いておくことで、メンテナンスのときの手間を少しですが、減らすこともできると思います。
(試していませんが).xcodeproj ファイルを Package.swift と同じ場所に配置することも可能だと思います。ですが、2つのフォルダ構成が1つのフォルダを共有する形になってしまうので、不必要に複雑化してしまい、お勧めしません。
Swift Package に example project を追加する
実際に、Swift Package に サンプルプロジェクトを追加していってみます。
SDSCustomView という すでに存在する SwiftPackage に、サンプルプロジェクトを追加してみます。
追加前のフォルダは以下のようになっています。
projectを作る
Xcode 上で、「File」 -「New」-「Project…」を使って、サンプルプロジェクトを作成します。
プロジェクトの保存場所に SwiftPackage の Package.swift がある フォルダを選択してください。
このときに、作成するプロジェクトでは、git を有効にしないでください。(有効できなくなっているはずです)
git 操作を行うときは、コマンドラインであれば、Package.swift の存在するフォルダから。
Xcode であれば、Package.swift で開いた状態で git 操作を行なってください。
あくまで git のルートディレクトリは、Package.swift の存在するディレクトリです。
以下のスクリーンショットは、”FixedWidthLabelExample” というプロジェクトを作成した状態です。
以降は、サンプルプロジェクトへの設定です。(今回の例で言うと FixedWidthLabelExample プロジェクト)
project に SwiftPackage を追加する
SwiftPackage の使用サンプルになるプロジェクトですので、SwiftPackage を追加しないといけません。
「File」-「Add Package…」で表示されるダイアログで、左下の “Add Local…” を押下し、追加したい SwiftPackage のフォルダを選択します。
追加したい SwiftPackage として、Package.swift が配置されているフォルダを選択します。(サンプルプロジェクトの .xcodeproj が配置されているフォルダの1つ上のフォルダ)
その後、プロジェクトエクスプローラで、プロジェクト、Target と選択した画面で、先ほど追加した SwiftPackage を Target に追加します。
サンプルプロジェクト にコードを書く
ここまでの設定で、import を適切に記述すれば、SwiftPackage は使える状態になりましたので、あとは、サンプルコードを記述するだけ(?)です。
サンプルプロジェクトを追加したフォルダ
最終的に、以下のようなフォルダ構成になります。
①をダブルクリックすると、SwiftPackage が開き、②をダブルクリックするとサンプルプロジェクトが開きます。
まとめ
SwiftPackage に サンプルプロジェクトを含める方法を説明しました。
特に正式な方法があるわけではないので、ここに書いた以外の方法で含めてもOKです。
- サブフォルダに、.xcodeproj を入れる
- プロジェクトには、Add Local をつかって、SwiftPackage を追加する
- Target にライブラリを手動で追加する
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link