Xcode Workspace(xcworkspace
)には複数のXcode Projectを束ねて、暗黙の依存関係を持たせる機能があります。
例えば、アプリ本体のxcodeprojとライブラリのxcodeprojをWorkspaceで束ねると、アプリ本体側からライブラリxcodeprojにあるライブラリターゲットのリンク指定が可能になります。アプリターゲットをビルドするとライブラリターゲットが暗黙的に依存解決され、ビルドとリンクが行われます。
ローカルのSwift Packageもxcodeprojと同様にWorkspaceで束ねてビルドできます。
検証環境
- Xcode 12.5
手順
まず、空のWorkspaceを作成します。
次に、作成したxcworkspaceと同じフォルダに、アプリプロジェクトフォルダとSwift Packageフォルダを配置します。
WorkspaceにxcodeprojとSwift Packageフォルダの参照を追加します。空のWorkspaceに、それぞれドラッグ&ドロップするのが簡単でしょう。
Workspaceは次の状態になります。
Sample.xcworkspace/contents.xcworkspacedata
からは次のように参照されています。
<?xml version="1.0" encoding="UTF-8"?> <Workspace version = "1.0"> <FileRef location = "group:SampleApp/SampleApp.xcodeproj"> </FileRef> <FileRef location = "group:ViewLibrary"> </FileRef> </Workspace>
最後に、アプリターゲットから、Swift Package内のライブラリターゲットへの参照を追加します。
下図の+
ボタンを押し、Swift Package内のライブラリを選択します。
これで、アプリターゲットからSwift Packageが参照できるようになりました。